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 开始的。