首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >30例 | 一文搞懂python日期时间处理

30例 | 一文搞懂python日期时间处理

作者头像
派大星的数据屋
发布2022-04-02 20:05:34
发布2022-04-02 20:05:34
7330
举报

前言

datetime是python的内置模块,用来处理日期和时间。

该模块常用的类有:

类名

功能说明

date

日期对象

time

时间对象

datetime

日期时间对象

timedelta

时间间隔

tzinfo

时区信息对象

本文旨在讲解datetime模块中datetime类的使用方法。datetime对象是 date 与 time 的结合体,涵盖了datetime对象的所有信息。

一、导入datetime

第一步,先导入datetime类:

代码语言:javascript
复制
from datetime import datetime

二、构造datetime对象

datetime(year,month,day,hour=0, minute=0, second=0, microsecond=0, tzinfo=None)

参数范围:

  • MINYEAR <= year <= MAXYEAR
  • 1 <= month <= 12
  • 1 <= day <= 指定年月的天数
  • 0 <= hour < 24
  • 0 <= minute < 60
  • 0 <= second < 60
  • 0 <= microsecond < 1000000

实例:

代码语言:javascript
复制
datetime(2019,12,6,13,30,50)
# 输出 : datetime.datetime(2019, 12, 6, 13, 30, 50)

三、类方法

datetime.today()

返回本地区当前日期时间datetime对象

代码语言:javascript
复制
datetime.today()
# 输出 : datetime.datetime(2019, 12, 9, 13, 27, 54, 693978)

datetime.now(tz=None)

返回本地区当前日期时间datetime对象,可以添加时区tz 默认无时区时,返回结果和datetime.today()一致

代码语言:javascript
复制
datetime.now()
# 输出 : datetime.datetime(2019, 12, 9, 13, 27, 54, 693978)

datetime.utcnow()

返回UTC(同格林尼治时间)日期时间datetime对象

代码语言:javascript
复制
datetime.now()
# 输出 : datetime.datetime(2019, 12, 9, 13, 27, 54, 693978)

datetime.fromtimestamp(timestamp, tz=None)

返回给定时间戳的datetime对象,时区默认为空,返回当地日期时间,也可以指定时区

代码语言:javascript
复制
datetime.fromtimestamp(1575877756)
# 输出 : datetime.datetime(2019, 12, 9, 15, 49, 16)

想获取当前时间戳,可通过time模块的time方法实现:

代码语言:javascript
复制
import time
time.time()
# 输出:1575877756.4673727

datetime.utcfromtimestamp(timestamp)

返回给定时间戳的datetime对象,日期时间默认为UTC(同格林尼治时间)

代码语言:javascript
复制
datetime.fromtimestamp(1575877756)
# 输出 : datetime.datetime(2019, 12, 9, 7, 49, 16)

datetime.fromordinal(ordinal)

输入参数为天数,返回从公元0年开始计数的年、月、日datetime对象 比如输入参数为365,则返回1-12-31

代码语言:javascript
复制
datetime.fromordinal(365)
# 输出 : datetime.datetime(1, 12, 31, 0, 0)

datetime.combine(date, time, tzinfo=self.tzinfo)

拼接datetime对象,形成一个新的datetime对象 可以输入时区参数,否则默认为原time的时区

代码语言:javascript
复制
date_ = datetime.today().date()
time_ = datetime.today().time()
datetime.combine(date_,time_)
# 输出 : datetime.datetime(2019, 12, 9, 16, 12, 56, 914484)

datetime.strptime(date_string, format)

将格式化日期时间字符串,转换为datetime对象,可以转换日期、时间、日期时间

代码语言:javascript
复制
datetime.strptime('2019-11-05','%Y-%m-%d')
# 输出 : datetime.datetime(2019, 11, 5, 0, 0)
datetime.strptime('09:30:50','%H:%M:%S')
# 输出 : datetime.datetime(1900, 1, 1, 9, 30, 50)
datetime.strptime('2019-11-05 09:30:50','%Y-%m-%d %H:%M:%S')
# 输出 : datetime.datetime(2019, 11, 5, 9, 30, 50)

四、实例方法

datetime.date()

返回date对象

代码语言:javascript
复制
d = datetime(2019,12,6,13,30,50)
d.date()
# 输出 : datetime.date(2019, 12, 6)

datetime.time()

返回time对象

代码语言:javascript
复制
d = datetime(2019,12,6,13,30,50)
d.time()
# 输出 : datetime.time(13, 30, 50)

datetime.timestamp()

对于给定的 datetime对象返回时间戳

代码语言:javascript
复制
d = datetime(2019,12,6,13,30,50)
d.timestamp()
# 输出 : 1575610250.0

datetime.weekday()

返回星期几,星期一为 0,星期天为 6

代码语言:javascript
复制
d = datetime(2019,12,6,13,30,50)
d.weekday()
# 输出 : 4

datetime.isoweekday()

返回星期几,星期一为 1,星期天为 7

代码语言:javascript
复制
d = datetime(2019,12,6,13,30,50)
d.isoweekday()
# 输出 : 5

datetime.isocalendar()

返回数组:(年、第多少周、星期几)

代码语言:javascript
复制
d = datetime(2019,12,6,13,30,50)
d.isocalendar()
# 输出 : (2019, 49, 5)

datetime.ctime()

返回日期时间的字符串表示

代码语言:javascript
复制
d = datetime(2019,12,6,13,30,50)
d.ctime()
# 输出 : 'Fri Dec  6 13:30:50 2019'

datetime.strftime(date_string, format)

datetime对象转换为格式化字符串

代码语言:javascript
复制
d = datetime.today()
datetime.strftime(d,'%Y-%m-%d %H:%M:%S')
# 输出 : '2019-12-09 16:32:18'

datetime.toordinal()

返回从公元0年到指定datetime的天数

代码语言:javascript
复制
d = datetime(2019,12,6,13,30,50)
d.toordinal()
# 输出 : 737399

五、类实例属性

datetime.year

返回给定datetime对象的年份

代码语言:javascript
复制
d = datetime(2019,12,6,13,30,50)
d.year
# 输出 : 2019

datetime.month

返回给定datetime对象的月份

代码语言:javascript
复制
d = datetime(2019,12,6,13,30,50)
d.month
# 输出 : 12

datetime.day

返回给定datetime对象的天数(一个月的某天)

代码语言:javascript
复制
d = datetime(2019,12,6,13,30,50)
d.day
# 输出 : 6

datetime.hour

返回给定datetime对象的小时数(一天的某时)

代码语言:javascript
复制
d = datetime(2019,12,6,13,30,50)
d.hour
# 输出 : 13

datetime.minute

返回给定datetime对象的分钟数(一小时的某分)

代码语言:javascript
复制
d = datetime(2019,12,6,13,30,50)
d.minute
# 输出 : 30

datetime.second

返回给定datetime对象的秒数(一分钟的某秒)

代码语言:javascript
复制
d = datetime(2019,12,6,13,30,50)
d.second
# 输出 : 50

datetime.microsecond

返回给定datetime对象的毫秒数(一分钟的某秒)

代码语言:javascript
复制
d = datetime(2019,12,6,13,30,50,3000)
d.microsecond
# 输出 : 3000

datetime.tzinfo

返回datetime对象的时区,前提是在创建datetime对象时需传入tzinfo参数,如果没有传入则返回值为None

代码语言:javascript
复制
# 获取一个含有时区的datetime对象
import pytz
sh = pytz.timezone('Asia/Shanghai')
d = datetime(2018, 11, 1, hour=8, tzinfo=sh)
d.tzinfo
# 输出 : <DstTzInfo 'Asia/Shanghai' LMT+8:06:00 STD>

参考:https://www.jianshu.com/p/7beff16c379d

六、结论

本文介绍了datetime模块中datetime类的各种方法和属性,代码案例丰富,分门别类,方便使用时查找。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python大数据分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、导入datetime类
  • 二、构造datetime对象
  • 三、类方法
  • 四、实例方法
  • 五、类实例属性
  • 六、结论
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档