我有一个变量
<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()
,但这似乎确实有效。有没有更简单的方法来比较这个值?
您必须在指定的时间内创建一个新的
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
你只需要从头开始创建
timedelta
对象,之后的比较就很简单了:
>>> a = datetime.timedelta(minutes=1)
>>> b = datetime.timedelta(minutes=1, seconds=1)
>>> a < b
True
>>> a > b
False
if d.total_seconds() > 60:
print("elapsed time is greater than 1 minute")
但是需要Python 2.7+
如果我错了,请纠正我,但我认为你也可以使用以下内容:
而不是
if elapsed > datetime.timedelta(seconds=1):
你可以说
if elapsed.total_seconds > 1: