TypeError:无法将datetime.datetime与datetime.time进行比较

时间:2017-08-03 01:28:02

标签: python python-2.7 datetime

我试图解析一个具有军事时间值的字符串

'10:00:00'

我可以用

做到这一点
>>> datetime.datetime.strptime('10:00:00', '%H:%M:%S').time()
datetime.time(10, 0)

然后我获得特定时区的当前时间:

>>> datetime.datetime.utcnow()+ datetime.timedelta(hours=10)
datetime.datetime(2017, 8, 3, 11, 26, 1, 909000)

我要做的是将字符串中的时间与utc中的当前时间进行比较。但是当我比较值

>>> bne_time_now > tag_time
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can't compare datetime.datetime to datetime.time

我认为我需要做的是在解析字符串时设置默认时间值,但我不知道该怎么做?

2 个答案:

答案 0 :(得分:0)

所以我设法让这个工作:

>>> today = datetime.datetime.utcnow()
>>> today
datetime.datetime(2017, 8, 3, 1, 52, 33, 253000)
>>> datetime.datetime.strptime('10:00:00', '%H:%M:%S').replace(year=today.year, month=today.month, day=today.day)
datetime.datetime(2017, 8, 3, 10, 0)

发布此处以防其他人需要此解决方案

答案 1 :(得分:0)

使用time()方法将datetime.datetime对象转换为datetime.time对象。

>>> (datetime.datetime.utcnow() + datetime.timedelta(hours=10)).time()
datetime.time(11, 33, 51, 523382)

然后你可以比较两个时间对象。