比较python中的时间增量

Alp*_*tel 59 python datetime timedelta

我有一个变量,<type 'datetime.timedelta'>我想将它与某些值进行比较.

让我们说d产生这个datetime.timedelta0:00:01.782000

我想比较一下:

#if d is greater than 1 minute 
if d>1:00:
  print "elapsed time is greater than 1 minute"
Run Code Online (Sandbox Code Playgroud)

我尝试过转换,datetime.timedelta.strptime()但似乎确实有效.是否有更简单的方法来比较这个值?

Mar*_*off 81

您必须使用指定的时间创建新timedelta的:

d > timedelta(minutes=1)
Run Code Online (Sandbox Code Playgroud)

或者这个略微更完整的脚本将有助于详细说明:

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"
Run Code Online (Sandbox Code Playgroud)

输出:

Slept for > 1 second


Sil*_*ost 16

你只需要timedelta从头创建对象,之后的比较是微不足道的:

>>> a = datetime.timedelta(minutes=1)
>>> b = datetime.timedelta(minutes=1, seconds=1)
>>> a < b
True
>>> a > b
False
Run Code Online (Sandbox Code Playgroud)


max*_*max 9

if d.total_seconds() > 60:
  print("elapsed time is greater than 1 minute")
Run Code Online (Sandbox Code Playgroud)

但它需要 python 2.7+


Arg*_*kas 5

如果我错了,请纠正我,但我认为您也可以使用以下内容:

代替

if elapsed > datetime.timedelta(seconds=1):
Run Code Online (Sandbox Code Playgroud)

你可以说

if elapsed.seconds > 1:
Run Code Online (Sandbox Code Playgroud)