比较Python中的时间增量

问题描述 投票:0回答:4

我有一个变量

<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()
,但这似乎确实有效。有没有更简单的方法来比较这个值?

python datetime timedelta
4个回答
132
投票

您必须在指定的时间内创建一个新的

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


21
投票

你只需要从头开始创建

timedelta
对象,之后的比较就很简单了:

>>> a = datetime.timedelta(minutes=1)
>>> b = datetime.timedelta(minutes=1, seconds=1)
>>> a < b
True
>>> a > b
False

10
投票
if d.total_seconds() > 60:
  print("elapsed time is greater than 1 minute")

但是需要Python 2.7+


10
投票

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

而不是

if elapsed > datetime.timedelta(seconds=1):

你可以说

if elapsed.total_seconds > 1:
© www.soinside.com 2019 - 2024. All rights reserved.