[英]Python datetime.strptime - ValueError: time data does not match format
[英]Python how to save datetime.strptime in datetime.time format
所以我试图使用datetime制作一个简单的代码并遇到错误。
import time
from datetime import datetime
x = True
b = datetime.strptime("06:10", "%H:%M")
while x == True:
a = datetime.now().time()
print(a)
if a > b:
x = False
time.sleep(0.945)
结果我得到了
TypeError: unorderable types: datetime.time() > datetime.datetime()
所以我想知道是否可以以datetime.time()格式保存datetime.strptime。
提前致谢
比较a
和b
.time()
为:
if a > b.time(): # if you want to compare only time
而不是datetime
对象。 答案结束时的原因。
datetime.now().time()
是datetime.time
类型:
>>> type(datetime.now().time())
<type 'datetime.time'>
而datetime.strptime()
和datetime.now()
是datetime.datetime
类型:
>>> type(datetime.strptime("06:10", "%H:%M"))
<type 'datetime.datetime'>
>>> type(datetime.now())
<type 'datetime.datetime'>
根据Martijn的评论进行编辑。
在创建datetime
datetime.strptime("06:10", "%H:%M")
日期时间对象时,日期将设置为1900-01-01
。 绝对我不认为你想与之比较。 您可以将日期检查为:
>>> d = datetime.strptime("06:10", "%H:%M")
>>> d
datetime.datetime(1900, 1, 1, 6, 10)
您试图比较datetime
time
和time
对象,Python不允许您进行比较。
如果你执行datetime.strptime()
你会得到一个包含日期和时间的对象(称为datetime
)。 但是因为您还没有解析默认为01-01-1900的日期。 现在datetime.now()
也会获得一个datetime
对象但是具有当前日期。 所以直接比较datetime.now()
和b
将不起作用,因为日期不同。
现在你只使用datetime.now().time()
使用当前时间,所以你还需要在比较之前的某个地方通过b = b.time()
将它应用于b
。
使用'datetime.now()'insted of'datetime.now()。time()'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.