如何使用strftime处理AM/PM时间格式?
具体来说,我有一段代码简化成了这样:
from datetime import datetime
date_string = '2009-11-29 03:17 PM'
format = '%Y-%m-%d %H:%M %p'
my_date = datetime.strptime(date_string, format)
# This prints '2009-11-29 03:17 AM'
print my_date.strftime(format)
这是怎么回事?Python在解析日期的时候是不是忽略了小数点的格式,还是我做错了什么?
5 个回答
36
你用了%H
(24小时制)而不是%I
(12小时制)。
93
format = '%Y-%m-%d %H:%M %p'
这个格式用的是 %H
而不是 %I
。因为 %H
是“24小时”格式,所以它可能只是忽略了 %p
的信息。如果你把 %H
改成 %I
,就可以正常工作了。
312
Python的time.strftime
文档中提到:
当和strptime()函数一起使用时,
%p
这个指令只会影响输出的小时部分,前提是你使用%I
来解析小时。
果然,把你的%H
换成%I
就能正常工作了。