我有一个<type 'datetime.timedelta'>
的变量,我想将它与某些值进行比较。
假设d产生datetime.timedelta
值0:00:01.782000
我想比较一下:
#if d is greater than 1 minute
if d>1:00:
print "elapsed time is greater than 1 minute"
我尝试转换datetime.timedelta.strptime()
,但这确实有效。是否有更简单的方法来比较这个值?
答案 0 :(得分:73)
您必须在指定的时间内create a new timedelta
:
d > timedelta(minutes=1)
或者这个略微更完整的脚本将有助于详细说明:
import datetime
from time import sleep
start = datetime.datetime.now()
sleep(3)
stop = datetime.datetime.now()
elapsed = stop - start
if elapsed > datetime.timedelta(minutes=1):
print "Slept for > 1 minute"
if elapsed > datetime.timedelta(seconds=1):
print "Slept for > 1 second"
输出:
Slept for > 1 second
答案 1 :(得分:14)
你只需要从头创建timedelta
对象,之后的比较是微不足道的:
>>> a = datetime.timedelta(minutes=1)
>>> b = datetime.timedelta(minutes=1, seconds=1)
>>> a < b
True
>>> a > b
False
答案 2 :(得分:3)
如果我错了,请纠正我,但我认为你也可以使用以下内容:
而不是
if elapsed > datetime.timedelta(seconds=1):
你可以说
if elapsed.seconds > 1:
答案 3 :(得分:0)
if d.total_seconds() > 60:
print("elapsed time is greater than 1 minute")
但它需要python 2.7 +