我如何使用strftime来计算周期(AM / PM)?

问题描述 投票:136回答:4

特别是我有简化了的代码:

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 datetime strptime
4个回答
185
投票

Python time.strftime docs说:

与strptime()函数一起使用时,仅time.strftime指令如果使用%p指令进行解析,则会影响输出小时字段小时。

当然,将%I更改为%H即可。


52
投票
%I

格式使用format = '%Y-%m-%d %H:%M %p' 而不是%H。由于%I是“ 24小时”格式,因此很可能只是丢弃%H信息。如果将%p更改为%H,则效果很好。


22
投票

您使用了%I(24小时格式),而不是%H(12小时格式)。


15
投票

尝试用%I(12小时制)替换%H(24小时制)?

© www.soinside.com 2019 - 2024. All rights reserved.