Python 标准库中的 datetime 模块提供了和日期和时间相关的类:
类 | 功能 |
---|---|
datetime.date | 以年、月和日表示日历中的日期 |
datetime.time | 以小时、分钟和秒表示一天中的时间 |
datetime.datetime | 以年、月、日、小时、分钟和秒表示日期和时间 |
datetime.timedelta | 表示一个时间段,即两个日期时间之间的差 |
date 类以年、月和日表示日历中的日期,示例如下:
>>> from datetime import date
>>> date.today()
datetime.date(2020, 5, 22)
>>> d = date(2020, 5, 1)
>>> d.year
2020
>>> d.month
5
>>> d.day
1
>>> d.weekday()
4
>>> d.isoweekday()
5
>>> d.isoformat()
'2020-05-01'
>>> d.isocalendar()
(2020, 18, 5)
>>> d.ctime()
'Fri May 1 00:00:00 2020'
>>> d.strftime("%Y-%m-%d")
'2020-05-01'
>>> e = d.replace(year=2000, month=12)
>>> e
datetime.date(2000, 12, 1)
time 类以小时、分钟和秒表示一天中的时间,示例如下:
>>> from datetime import time
>>> t = time(18, 19, 20, 21)
>>> t.hour
18
>>> t.minute
19
>>> t.second
20
>>> t.microsecond
21
>>> t.isoformat()
'18:19:20.000021'
>>> t.strftime("%H:%M:%S:%f")
'18:19:20:000021'
>>> u = t.replace(hour=8, minute=8, second = 8)
>>> u
datetime.time(8, 8, 8, 21)
datetime 类年、月、日、小时、分钟和秒表示日期和时间,包含 date 对象和 time 对象的所有信息,示例如下:
>>> from datetime import datetime,date,time
>>> datetime.today()
datetime.datetime(2020, 5, 22, 12, 27, 34, 896212)
>>> d = date(2020,12,12)
>>> t = time(8,8,8,8)
>>> dt = datetime.combine(d, t)
>>> dt
datetime.datetime(2020, 12, 12, 8, 8, 8, 8)
>>> dt.isoformat()
'2020-12-12T08:08:08.000008'
>>> dt.strftime("%Y-%m-%d %H:%M:%S:%f")
'2020-12-12 08:08:08:000008'
>>> u = dt.replace(year=2000, hour=20)
>>> u
datetime.datetime(2000, 12, 12, 20, 8, 8, 8)
>>> u.year
2000
>>> u.hour
20
timedelta 对象表示一个时间段,即两个日期 (date) 或日期时间 (datetime) 之间的差。timedelta 接受命名参数:weeks、days、hours、minutes、seconds、milliseconds、microseconds,示例如下:
>>> from datetime import date,timedelta
>>> d = date(2020,12,12)
>>> delta = timedelta(days=3)
>>> d - delta
datetime.date(2020, 12, 9)
>>> dt = datetime(2020, 12, 12, 8, 8, 8, 8)
>>> delta = timedelta(days = 3, hours = 3)
>>> dt - delta
datetime.datetime(2020, 12, 9, 5, 8, 8, 8)