欢迎访问宙启技术站
智能推送

如何使用Python的datetime函数进行日期和时间处理

发布时间:2023-06-16 02:52:03

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等。我们可以用它来表示和处理日期和时间,并进行日期和时间的计算和格式化输出等。