特别是我有简化了的代码:
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在解析日期时是否只是忽略句点说明符,还是我做一些愚蠢的事情?
Python time.strftime
docs说:
与strptime()函数一起使用时,仅
time.strftime
指令如果使用%p
指令进行解析,则会影响输出小时字段小时。
当然,将%I
更改为%H
即可。
%I
格式使用format = '%Y-%m-%d %H:%M %p'
而不是%H
。由于%I
是“ 24小时”格式,因此很可能只是丢弃%H
信息。如果将%p
更改为%H
,则效果很好。
您使用了%I
(24小时格式),而不是%H
(12小时格式)。
尝试用%I(12小时制)替换%H(24小时制)?