首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError:无法将datetime.datetime与datetime.time进行比较

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

Stack Overflow用户
提问于 2017-08-03 09:28:02
回答 2查看 7.6K关注 0票数 0

我正在尝试解析一个具有军用时间小时值的字符串

代码语言:javascript
复制
'10:00:00'

我能做到这一点

代码语言:javascript
复制
>>> datetime.datetime.strptime('10:00:00', '%H:%M:%S').time()
datetime.time(10, 0)

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

代码语言:javascript
复制
>>> datetime.datetime.utcnow()+ datetime.timedelta(hours=10)
datetime.datetime(2017, 8, 3, 11, 26, 1, 909000)

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

代码语言:javascript
复制
>>> 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

我想我需要做的是在解析字符串时设置一个默认的时间值,但我不确定该怎么做?

EN

回答 2

Stack Overflow用户

发布于 2017-08-03 09:48:00

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

代码语言:javascript
复制
>>> (datetime.datetime.utcnow() + datetime.timedelta(hours=10)).time()
datetime.time(11, 33, 51, 523382)

然后,您可以比较这两个time对象。

票数 1
EN

Stack Overflow用户

发布于 2017-08-03 09:46:09

所以我设法让它工作起来:

代码语言:javascript
复制
>>> 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)

只是在这里张贴,以防其他人需要这个解决方案

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45473347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档