Python ValueError:当我要比较两次时,未转换的数据仍保留::00

Python ValueError:当我要比较两次时,未转换的数据仍保留::00,python,python-2.7,time,Python,Python 2.7,Time,我想比较两次,我有一个错误 from time import strftime from datetime import datetime addtime = "18:00" timeformat = '%H:%M' now = strftime(timeformat) print "Time: " + now checkwhen = datetime.strptime(now, timeformat) - datetime.strptime(addtime, timeformat) print

我想比较两次,我有一个错误

from time import strftime
from datetime import datetime
addtime = "18:00"
timeformat = '%H:%M'
now = strftime(timeformat)
print "Time: " + now
checkwhen = datetime.strptime(now, timeformat) - datetime.strptime(addtime, timeformat)
print "Added: "+str(checkwhen)+" ago" 
timecheck = str("00:15")

if (datetime.strptime(str(checkwhen), timeformat) < datetime.strptime(timecheck, timeformat)):
    print "ALERT!!!"

您可以格式化timedelta对象,因此必须手动执行该操作

timecheck = str("00:15")
checkwhen = ':'.join(str(checkwhen).split(':')[:-1])
if (datetime.strptime(str(checkwhen), timeformat) < datetime.strptime(timecheck, timeformat)):
    print "ALERT!!!"
timecheck=str(“00:15”)
checkwhen=':'.join(str(checkwhen.split(':')[:-1])
如果(datetime.strtime(str(checkwhen),timeformat)
我在你的第三行收到错误“NameError:name'strftime'未定义”。你需要导入它,pythonlearn,你能把你的错误的回溯放回去吗?
strtime(str(checkwhen),…)
根本没有意义。首先,你为什么要这么做?@Charles Duffy,因为当我不使用它时,我有一个错误:TypeError:strTime()参数1必须是字符串,而不是datetime。timedelta@PythonLearn,我不是问你为什么要添加
str()
。我问你为什么在你的delta上使用
strtime()
。如果跨越午夜边界,这段代码会表现得非常糟糕。
checkwhen
是一个timedelta对象,那么如果你能提供一些这样的例子,它怎么能跨越某个时间(午夜)边界呢help@pramod,它最初是一个timedelta,但在比较之前,您将其强制为datetime对象——当它从
strtime
中退出时,它不再是一个timedelta。这就是为什么OP要求做的事情没有什么意义,也就是为什么我对只提供一个“使其工作”而不解决概念不匹配的战术修复方案持怀疑态度。@CharlesDuffy
checkwhen
是两个datetime对象的区别,这就是为什么它是
datetime.timedelta
的对象,这就是我的反对意见——直接的战术问题已经解决了,但导致战术问题的根本概念问题却没有解决。
timecheck = str("00:15")
checkwhen = ':'.join(str(checkwhen).split(':')[:-1])
if (datetime.strptime(str(checkwhen), timeformat) < datetime.strptime(timecheck, timeformat)):
    print "ALERT!!!"