Сравнение временной дельта в python
У меня есть переменная, которая <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()
, но это похоже на работу. Есть ли более простой способ сравнить это значение?
Ответы
Ответ 1
Вам нужно создать новый timedelta
с указанным количеством времени:
d > timedelta(minutes=1)
Или этот чуть более полный script поможет вам в разработке:
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
Ответ 2
Вам просто нужно создать объект timedelta
с нуля, сравнение после этого тривиально:
>>> a = datetime.timedelta(minutes=1)
>>> b = datetime.timedelta(minutes=1, seconds=1)
>>> a < b
True
>>> a > b
False
Ответ 3
Исправьте меня, если я ошибаюсь, но я думаю, что вы также можете использовать следующее:
Вместо
if elapsed > datetime.timedelta(seconds=1):
Можно сказать
if elapsed.seconds > 1:
Ответ 4
if d.total_seconds() > 60:
print("elapsed time is greater than 1 minute")
но для этого требуется python 2.7 +