繁体   English   中英

Python如何以datetime.time格式保存datetime.strptime

[英]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。

提前致谢

比较ab .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 timetime对象,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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM