datetime 模块是对 time 模块的一个高级封装,提供了对日期、时间、时区、时间段的操作。与 time 模块相比,datetime 模块提供的接口更直观、易用,功能也更加强大。datetime 模块定义的类如表 1 所示。
类名 | 描述 |
---|---|
datetime.date | 日期类 |
datetime.time | 时间类 |
datetime.datetime | 日期与时间类 |
datetime.timedelta | 表示两个 date、time、datetime 实例之间的时间差 |
datetime.tzinfo | 时区相关信息对象的抽象基类 |
datetime.timezone | 实现 tzinfo 抽象基类的类,表示与 UTC 的固定偏移量 |
datetime.datetime 类的常用属性和方法如表 2 所示。
属性或方法 | 描述 |
---|---|
datetime.today() | 返回一个表示当前本期日期时间的 datetime 对象 |
datetime.now([tz]) | 返回指定时区日期时间的 datetime 对象,如果不指定 tz 参数则结果同上 |
datetime.utcnow() | 返回当前 UTC 日期时间的 datetime 对象 |
datetime.fromtimestamp(timestamp[, tz]) | 根据指定的时间戳创建一个 datetime 对象 |
datetime.utcfromtimestamp(timestamp) | 根据指定的时间戳创建一个 datetime 对象 |
datetime.combine(date, time) | 把指定的 date 和 time 对象整合成一个 datetime 对象 |
datetime.strptime(date_str, format) | 将时间字符串转换为 datetime 对象 |
dt.year, dt.month, dt.day | 年、月、日 |
dt.hour, dt.minute, dt.second | 时、分、秒 |
dt.microsecond, dt.tzinfo | 微秒、时区信息 |
dt.date() | 获取 datetime 对象对应的 date 对象 |
dt.time() | 获取 datetime 对象对应的 time 对象,tzinfo 为 None |
dt.timetz() | 获取 datetime 对象对应的time对象,tzinfo 与 datetime 对象的 tzinfo 相同 |
dt.replace() | 生成并返回一个新的 datetime 对象,如果所有参数都没有指定,则返回一个 与原 datetime 对象相同的对象 |
dt.timetuple() |
返回 datetime 对象对应的 tuple (不包括 tzinfo) |
dt.utctimetuple() | 返回 datetime 对象对应的 utc 时间的 tuple(不包括 tzinfo) |
dt.timestamp() | 返回datetime对象对应的时间戳,Python 3.3才新增的 |
dt.toordinal() | 同 date 对象 |
dt.weekday() | 同 date 对象 |
dt.isocalendar() | 同 date 对象 |
dt.isoformat([sep]) | 返回一个“%Y-%m-%d”字符串 |
dt.ctime() | 等效于 time 模块的 time.ctime(time.mktime(d.timetuple())) |
dt.strftime(format) | 返回指定格式的时间字符串 |
以下是调用表 2 中部分属性或方法的代码:
from datetime import datetime
datetime.today()
dt = datetime.now()
dt
dt.timestamp()
dt.weekday()
dt.strftime('%Y%m%d %H:%M:%S.%f')
上述代码的运行结果如下所示: