如何使用Python的datetime函数进行日期和时间处理
Python的datetime模块是Python中处理日期和时间的常用工具之一。该模块提供了许多处理日期和时间的函数和类,包括datetime、date、time和timedelta等。
datetime类
datetime类是Python中最常用的日期和时间类。它可以存储年、月、日、时、分、秒和微秒等信息。datetime类的构造方法如下:
datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
其中,year、month、day是必填项,用于表示日期。hour、minute、second、microsecond是可选项,用于表示时间。tzinfo是时区,也是可选项。fold表示可选的闰秒。
例1:
import datetime # 构造当前日期和时间 now = datetime.datetime.now() print(now) # 构造自定义日期和时间 dt = datetime.datetime(2021, 11, 11, 11, 11, 11, 111111) print(dt)
输出:
2021-11-03 11:30:57.779652 2021-11-11 11:11:11.111111
date类
date类是Python中表示日期的类。它只包含年、月、日信息,不包含时间信息。date类的构造方法如下:
datetime.date(year, month, day)
例2:
import datetime # 构造当前日期 today = datetime.date.today() print(today) # 构造自定义日期 d = datetime.date(2022, 2, 22) print(d)
输出:
2021-11-03 2022-02-22
time类
time类是Python中表示时间的类。它只包含时、分、秒和微秒信息,不包含日期信息。time类的构造方法如下:
datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
其中,hour、minute、second、microsecond是可选项,用于表示时间。tzinfo是时区,也是可选项。fold表示可选的闰秒。
例3:
import datetime # 构造当前时间 now = datetime.datetime.now() t = now.time() print(t) # 构造自定义时间 t1 = datetime.time(11, 11, 11, 111111) print(t1)
输出:
11:30:57.779652 11:11:11.111111
timedelta类
timedelta类是Python中表示时间间隔的类。它可以用于计算两个日期或时间之间的差值。timedelta类的构造方法如下:
datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
其中,days、seconds、microseconds、milliseconds、minutes、hours、weeks是可选项,用于表示时间间隔的各个部分。
例4:
import datetime # 计算两个日期之间的差 d1 = datetime.date(2021, 11, 1) d2 = datetime.date(2022, 1, 1) delta = d2 - d1 print(delta.days) # 计算两个时间之间的差 t1 = datetime.datetime(2021, 11, 3, 10, 10, 10) t2 = datetime.datetime(2021, 11, 3, 11, 11, 11) delta = t2 - t1 print(delta.seconds) # 打印秒数 print(delta.microseconds) # 打印微秒数
输出:
61 3661 0
格式化输出日期和时间
datetime模块还提供了一个strftime()函数,可用于将datetime对象格式化为字符串,或将字符串解析为datetime对象。strftime()函数的使用方法如下:
datetime_object.strftime(format)
其中,format是一个字符串,用于指定输出的格式。常用的格式化字符包括:
- %Y:年份(4位数)
- %m:月份(2位数)
- %d:日期(2位数)
- %H:小时(24小时制,2位数)
- %I:小时(12小时制,2位数)
- %M:分钟(2位数)
- %S:秒数(2位数)
- %f:微秒(6位数)
- %p:AM或PM
- %a:星期名称(缩写)
- %A:星期名称(全写)
- %b:月份名称(缩写)
- %B:月份名称(全写)
例5:
import datetime
# 将datetime对象格式化为字符串
now = datetime.datetime.now()
s = now.strftime('%Y-%m-%d %H:%M:%S')
print(s)
# 将字符串解析为datetime对象
s = '2022-05-05 05:05:05'
dt = datetime.datetime.strptime(s, '%Y-%m-%d %H:%M:%S')
print(dt)
输出:
2021-11-03 11:45:57 2022-05-05 05:05:05
总结
datetime模块是Python中处理日期和时间的常用工具之一,它提供了许多处理日期和时间的函数和类,包括datetime、date、time和timedelta等。我们可以用它来表示和处理日期和时间,并进行日期和时间的计算和格式化输出等。
