Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用strftime计算时段(上午/下午)?_Python_Datetime_Strptime - Fatal编程技术网

Python 如何使用strftime计算时段(上午/下午)?

Python 如何使用strftime计算时段(上午/下午)?,python,datetime,strptime,Python,Datetime,Strptime,具体而言,我的代码可以简化为: 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是在解析日期时忽略

具体而言,我的代码可以简化为:

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说:

当与strtime()函数一起使用时,只能使用
%p
指令 如果使用
%I
指令进行分析,则会影响输出小时字段 时间到了

毫无疑问,将
%H
更改为
%I
可以让它正常工作。

Python说:

当与strtime()函数一起使用时,只能使用
%p
指令 如果使用
%I
指令进行分析,则会影响输出小时字段 时间到了

当然,将
%H
更改为
%I
会使其正常工作。

尝试将%H(24小时制的小时)替换为%I(12小时制的小时)?

尝试将%H(24小时制的小时)替换为%I(12小时制的小时制)?

您使用了
%H
(24小时制)而不是
%I
(12小时制).

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

格式使用的是
%H
而不是
%I
。由于
%H
是“24小时”格式,它很可能只是丢弃
%p
信息。如果您将
%H
更改为
%I
,它就可以正常工作

>>> from datetime import datetime
>>> print(datetime.today().strftime("%H:%M %p"))
15:31 AM
格式使用的是
%H
而不是
%I
。由于
%H
是“24小时”格式,它很可能只是丢弃
%p
信息。如果您将
%H
更改为
%I
,它就可以正常工作

>>> from datetime import datetime
>>> print(datetime.today().strftime("%H:%M %p"))
15:31 AM
尝试将
%I
替换为
%H


尝试将
%I
替换为
%H

,除非您的时间字符串为0.00pm,(
%I
从1开始)@现在是下午12点或凌晨12点。不确定上午0点或下午0点是否有意义。只有在24小时格式下,第0小时才有意义,但不是上午/下午。还要注意检查您的区域设置。如果您使用的区域设置不使用a.m./p.m.,则必须切换到使用a.m./p.m.的区域设置。我使用了%I和%p,并且在使用de_de作为区域设置时将%p留空。切换到en_GB使%p可见。这非常好,除非您的时间字符串为0.00pm,(
%I
从1开始)@现在是下午12点或凌晨12点。不确定上午0点或下午0点是否有意义。只有在24小时格式下,第0小时才有意义,但不是上午/下午。还要注意检查您的区域设置。如果您使用的区域设置不使用a.m./p.m.,则必须切换到使用a.m./p.m.的区域设置。我使用了%I和%p,并且在使用de_de作为区域设置时将%p留空。切换到en_GB使%p可见。欢迎使用StackOverflow。虽然这段代码可以解决这个问题,但如何以及为什么解决这个问题将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请编辑您的答案以添加解释,并说明适用的限制和假设。欢迎使用StackOverflow。虽然这段代码可以解决这个问题,但如何以及为什么解决这个问题将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请编辑您的答案,添加解释,并说明适用的限制和假设。