13-将datetime对象转换为字符串
17.4.3 将datetime对象转换为字符串
UNIX纪元时间戳和 datetime
对象对人类来说都不是很方便阅读。利用 strftime()
方法可以将 datetime
对象显示为字符串。( strftime()
方法名中的f表示格式,即format。)
strftime()
方法使用的指令类似于Python的字符串格式化。表17-1所示为完整的 strftime()
指令。
| strftime指令 | 含义 |
| :----- | :----- | :----- | :----- |
| %Y
| 带世纪的年份,例如 '2014'
|
| %y
| 不带世纪的年份, '00'
至 '99'
(1970至2069) |
| %m
| 数字表示的月份, '01'
至 '12'
|
| %B
| 完整的月份,例如 'November'
|
| %b
| 简写的月份,例如 'Nov'
|
| %d
| 一月中的第几天, '01'
至 '31'
|
| %j
| 一年中的第几天, '001'
至 '366'
|
| %w
| 一周中的第几天, '0'
(周日)至 '6'
(周六) |
| %A
| 完整的周几,例如 'Monday'
|
| %a
| 简写的周几,例如 'Mon'
|
| %H
| 小时(24小时时钟), '00'
至 '23'
|
| %I
| 小时(12小时时钟), '01'
至 '12'
|
| %M
| 分, '00'
至 '59'
|
| %S
| 秒, '00'
至 '59'
|
| %p
| 'AM'
或 'PM'
|
| %%
| 就是 '%'
字符 |
向 strftime()
传入一个定制的格式字符串,其中包含格式化指定(以及任何需要的斜线、冒号等)。 strftime()
将返回一个格式化的字符串,以表示 datetime
对象的信息。在交互式环境中输入以下代码:
>>> oct21st = datetime.datetime(2019, 10, 21, 16, 29, 0)
>>> oct21st.strftime('%Y/%m/%d %H:%M:%S')
'2019/10/21 16:29:00'
>>> oct21st.strftime('%I:%M %p')
'04:29 PM'
>>> oct21st.strftime("%B of '%y")
"October of '19"
这里,我们有一个 datetime
对象,它表示2019年10月21日下午4点29分,保存在 oct21st
中。向 strftime()
传入定制的格式字符串 '%Y/%m/%d %H:%M:%S
,并返回一个字符串,它包含以斜杠分隔的2019、10和21,以及以冒号分隔的16、29和00。传入 '%I:%M% p'
则返回 '04:29 PM'
,传入 "%B of '%y"
则返回 "October of '19"
。请注意, strftime()
不是以 datetime.datetime
开始的。