datetime 模块

import datetime as dt

datetime 提供了基础时间和日期的处理。

date 对象

可以使用 date(year, month, day) 产生一个 date 对象:

d1 = dt.date(2007, 9, 25)
d2 = dt.date(2008, 9, 25)

可以格式化 date 对象的输出:

print (d1)
print (d1.strftime('%A, %m/%d/%y'))
print (d1.strftime('%a, %m-%d-%Y'))
2007-09-25
Tuesday, 09/25/07
Tue, 09-25-2007

可以看两个日期相差多久:

print (d2 - d1)
366 days, 0:00:00

返回的是一个 timedelta 对象:

d = d2 - d1
print (d.days)
print (d.seconds)
366
0

查看今天的日期:

print (dt.date.today())
2018-12-24

time 对象

可以使用 time(hour, min, sec, us) 产生一个 time 对象:

t1 = dt.time(15, 38)
t2 = dt.time(18)

改变显示格式:

print (t1)
print (t1.strftime('%I:%M, %p'))
print (t1.strftime('%H:%M:%S, %p'))
15:38:00
03:38, PM
15:38:00, PM

因为没有具体的日期信息,所以 time 对象不支持减法操作。

datetime 对象

可以使用 datetime(year, month, day, hr, min, sec, us) 来创建一个 datetime 对象。

获得当前时间:

d1 = dt.datetime.now()
print (d1)
2018-12-24 11:21:05.670893

给当前的时间加上 30 天,timedelta 的参数是 timedelta(day, hr, min, sec, us)

d2 = d1 + dt.timedelta(30)
print (d2)
2019-01-23 11:21:05.670893

除此之外,我们还可以通过一些指定格式的字符串来创建 datetime 对象:

print (dt.datetime.strptime('2/10/01', '%m/%d/%y'))
2001-02-10 00:00:00

datetime 格式字符表

字符 含义
%a 星期英文缩写
%A 星期英文
%w 一星期的第几天,[0(sun),6]
%b 月份英文缩写
%B 月份英文
%d 日期,[01,31]
%H 小时,[00,23]
%I 小时,[01,12]
%j 一年的第几天,[001,366]
%m 月份,[01,12]
%M 分钟,[00,59]
%p AM 和 PM
%S 秒钟,[00,61] (大概是有闰秒的存在)
%U 一年中的第几个星期,星期日为第一天,[00,53]
%W 一年中的第几个星期,星期一为第一天,[00,53]
%y 没有世纪的年份
%Y 完整的年份