如何使用datetime.strptime解释期间(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) 

是什么赋予了? 在parsingdate时,Python是否忽略了句号说明符,还是我在做一些愚蠢的事情?

Python的time.strftime文档说:

当与strptime()函数一起使用时,如果使用%I指令来parsing小时,则%p指令仅影响输出小时字段。

果然,把你的%H %I是可以的。

 format = '%Y-%m-%d %H:%M %p' 

格式是使用%H而不是%I 。 由于%H是“24小时”格式,因此可能只是丢弃%p信息。 如果将%H更改为%I ,则工作得很好。

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

尝试用%I(12小时制的小时)replace%H(24小时制的小时)?