如何使用 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 在解析日期时是否只是忽略句点说明符,还是我在做一些愚蠢的事情?
Specifically I have code that simplifies to this:
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)
What gives? Does Python just ignore the period specifier when parsing dates or am I doing something stupid?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
Python
time.strftime
文档说:果然,将
%H
更改为%I
就可以了。The Python
time.strftime
docs say:Sure enough, changing your
%H
to%I
makes it work.格式使用
%H
而不是%I
。由于%H
是“24 小时”格式,因此很可能只是丢弃%p
信息。如果将%H
更改为%I
,效果就很好。The format is using
%H
instead of%I
. Since%H
is the "24-hour" format, it's likely just discarding the%p
information. It works just fine if you change the%H
to%I
.您使用了
%H
(24 小时格式)而不是%I
(12 小时格式)。You used
%H
(24 hour format) instead of%I
(12 hour format).尝试将
%I
替换为%H
。成为
Try replacing
%I
with%H
.Becomes
尝试将 %H(24 小时制的小时)替换为 %I(12 小时制的小时)?
Try replacing %H (Hour on a 24-hour clock) with %I (Hour on a 12-hour clock) ?