Python 日期时间

本章节讲述在 Python 中如何使用 datetime 模块来处理日期和时间。

本章节讲述在 Python 中如何使用 datetime 模块来处理日期和时间。

在 Python 中没有日期时间数据类型,但是内置了一个 datatime 的模块,我们可以使用 datatime 模块来处理日期时间对象。

获取当前时间

导入 datetime 模块并显示当前日期:

import datetime

x = datetime.datetime.now()
print(x)

示例中首先导入了 datetime 模块,然后使用 datetime.now() 方法创建了一个当前日期时间的对象。

运行代码后将会显示类似如下的输出:

2020-07-28 20:21:42.588685

输出的日期中包含了年、月、日、小时、分钟、秒和微秒。

datetime 对象有许多方法来返回有关日期对象的信息。

返回当前日期的年份和星期几:

import datetime

x = datetime.datetime.now()

print(x.year)
print(x.strftime("%A"))

创建日期对象

要创建日期,我们可以使用 datetime 模块的 datetime 类。

构造方法 datetime() 类需要三个参数来创建日期:年,月,日。

创建日期对象:

import datetime

x = datetime.datetime(2020, 5, 17)
print(x) # 2020-05-17 00:00:00

datetime() 类也可以传入时间(小时,分钟,秒,微秒)和时区,但它们是可选的,时间的默认值是 0,时区的默认值是 None

strftime() 方法

datetime 对象的 strftime() 可以将日期对象按照指定的格式进行格式化。

strftime() 需要一个字符串参数表示日期的格式,返回一个指定格式的日期时间字符串。

日期格式采用与定义的代码表示,比如 %Y 表示年份,%m 表示月份, %d 表示月中的一天,组合起来 %Y-%m-%d 表示一个整体的日期格式。更多日期格式代码请看最后。

格式化日期:

import datetime

x = datetime.datetime.now()
print(x.strftime("%Y-%m-%d")) # 2021-07-28
print(x.strftime("%H:%M:%S")) # 13:20:24
print(x.strftime("%Y-%m-%d %H:%M:%S")) # 2021-07-28 13:20:24

所有合法格式代码的参考如下:

Directive Description Example
%a 星期, 简写 Wed
%A 星期, 全写 Wednesday
%w 星期的数字表示, 0-6, 0 是星期天 3
%d 月中的一天, 01-31 31
%b 月名称, 简写 Dec
%B 月名称, 全写 December
%m 月的数字表示, 01-12 12
%y 年, 两位简写, 18
%Y 年, 四位全写 2018
%H 24 制小时, 00-23 17
%I 12 制小时, 00-12 05
%p AM/PM PM
%M 分, 00-59 41
%S 秒, 00-59 08
%f 微秒 000000-999999 548513
%z UTC 时区偏移 +0100
%Z 时区 CST
%j 一年中的一天的数字表示, 001-366 365
%U 一年中的星期的数字表示, 星期天是每周的第一天, 00-53 52
%W 一年中的星期的数字表示, 星期一是每周的第一天, 00-53 52
%c 当地日期时间版本 Mon Dec 31 17:41:00 2018
%x 当地日期版本 12/31/18
%X 当地时间版本 17:41:00
%% % 字符 %
%G ISO 8601 格式的年份 2018
%u ISO 8601 格式的星期的数字表示 (1-7) 1
%V ISO 8601 格式的一年中的星期的数字表示 (01-53) 01