python中的datetime模块提供了五种核心对象:datetime(时间日期类型), date(日期类型), time(时间类型), tzinfo(时区类型), timedelta(时间差类型)。分别如下:
一、datetime 对象
datetime对象可以用来表示精确的日期和时间
>>> from datetime import datetime
>>> today= datetime(year=2021, month=7, day=6)
>>> today
datetime.datetime(2021, 7, 6, 0, 0)
>>> today.month
7
>>> now = datetime.now()
>>> now
datetime.datetime(2021, 7, 6, 13, 41, 45, 23373)
在实例化datetime时,year, month, day是必填项,hour, minute, second, microsecond(微秒), tzinfo(时区)是可选项。
二、date 对象
date对象和datetime对象的区别在于,date对象只能表示日期,不能表示时间(即其精确度为天)。date实例化时需要三个参数:year, month, day。date对象是没有时区(tzinfo)属性的。
>>> from datetime import date
>>> today= date(year=2021, month=7, day=6)
>>> today
datetime.date(2021, 7, 6)
>>> today.month
7
三、time对象
和date对象相反,time对象只能用来表示时间,而不能用来表示日期。time对象所表示的时间可以精确到微秒,而且可以具有时区(tzinfo)属性。
>>> now = time(hour=11, minute=30, second=00)
>>> now
datetime.time(11, 30)
>>> now.second
0
四、timedelta对象
timedelta对象表示一个时间段,timedelta对象可以通过手动实例化得到,也可以通过上述三个对象(datetime, date, time)相减得到。
>>> from datetime import datetime, timedelta
>>> now = datetime.now()
>>> tomorrow=datetime(year=2021, month=7, day=7,hour=14)
>>> delta=tomorrow-now
>>> delta
datetime.timedelta(1, 675, 104292)
>>> now+delta==tomorrow
True
实例化timedelta时,可以传入的参数有:days, seconds, microseconds, milliseconds, minutes, hours, weeks。