日期时间
datetime
当前日期时间
>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2019, 2, 27, 11, 10, 49, 55, 53)
构造日期时间
>>> dt = datetime.datetime(2019, 10, 21, 16, 29, 0)
>>> dt.year, dt.month, dt.day
(2019, 10, 21)
>>> dt.hour, dt.minute, dt.second
(16, 29, 0)
info
传入代表 年、月、日、时、分、秒 的整数,以得到特定时刻的 datetime 对象。 这些整数将保存在 datetime 对象的 year、month、 day、hour、 minute 和 second 属性中。
timedelta
datetime 模块还提供了 timedelta 数据类型,它表示一个“时段”,而不是一个“时刻”。
>>> delta = datetime.timedelta(days=11, hours=10, minutes=9, seconds=8)
>>> delta.days, delta.seconds, delta.microseconds
(11, 36548, 0)
>>> delta.total_seconds()
986948.0
>>> str(delta)
'11 days, 10:09:08'
info
datetime. timedelta() 函数接收关键字参数 weeks、 days、 hours、 minutes、 seconds、 milliseconds 和 microseconds。
日期计算
计算今天之后 1000 天的日期。
>>> dt = datetime.datetime.now()
>>> dt
datetime.datetime(2018, 12, 2, 18, 38, 50, 636181)
>>> thousandDays = datetime.timedelta(days=1000)
>>> dt + thousandDays
datetime.datetime(2021, 8, 28, 18, 38, 50, 636181)
tip
- 号可以计算之前的日期。
strftime
利用 strftime() 方法可以将 datetime 对象显示为字符串。
>>> oct21st = datetime.datetime(2019, 10, 21, 16, 29, 0)
>>> oct21st.strftime('%Y/%m/%d %H:%M:%S')
'2019/10/21 16:29:00'
strftime 指令 | 含义 |
---|---|
%Y | 带世纪的年份,例如'2014' |
%y | 不带世纪的年份, '00'至'99'(1970 至 2069) |
%m | 数字表示的月份, '01'至'12' |
%B | 完整的月份,例如'November' |
%b | 简写的月份,例如'Nov' |
%d | 一月中的第几天, '01'至'31' |
%j | 一年中的第几天, '001'至'366' |
%w | 一周中的第几天, '0'(周日)至'6'(周六) |
%A | 完整的周几,例如'Monday' |
%a | 简写的周几,例如'Mon' |
%H | 小时(24 小时时钟), '00'至'23' |
%I | 小时(12 小时时钟), '01'至'12' |
%M | 分, '00'至'59' |
%S | 秒, '00'至'59' |
%p | 'AM'或'PM' |
%% | 就是'%'字符 |
strptime
如果需要将日期字符串转换为 datetime 对象, 就用 datetime.datetime.strptime() 函数。strptime() 函数与 strftime() 函数相反。自定义的格式字符串使用的指令与 strftime() 的相同。
>>> datetime.datetime.strptime('2019/10/21 16:29:00', '%Y/%m/%d %H:%M:%S')
datetime.datetime(2019, 10, 21, 16, 29)