为什么python不正确地转换这些日期时间字符串?

时间:2019-06-26 06:49:13

标签: python datetime

看看下面的空闲会话:

>>> from datetime import datetime
>>> timeFmtPy = '%m/%d/%Y %H:%M:%S %p'
>>> d = lambda y:datetime.strptime(y, timeFmtPy)
>>> t1 = d('6/2/2019 12:48:10 AM')
>>> t2 = d('6/2/2019 1:05:17 AM')
>>>
>>> (t2-t1)
datetime.timedelta(days=-1, seconds=44227)
>>> 44227/3600
12.285277777777777
>>> (t2-t1).total_seconds()
-42173.0

很显然,t2t1晚。没有人知道为什么差异应该为正时为负吗?

1 个答案:

答案 0 :(得分:3)

您以12小时格式指定时间,因此%H应该是%I

f = lambda y: datetime.strptime(y, '%m/%d/%Y %I:%M:%S %p')
t1 = f('6/2/2019 12:48:10 AM')
t2 = f('6/2/2019 1:05:17 AM')

t2 > t1
# True

有关时间格式说明符的便捷列表,请参见http://strftime.org