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 |