2015-08-25 4 views
0

У меня есть два объекта времени даты, как этоВычесть Два DateTime объекты - Python

a = first date time object 
b = second date time object 

А потом

c = a - b 

Теперь я хочу сравнить с и проверить, если разница была больше, чем на 3 часа, поэтому у меня есть время, объект под названием three_hours

three_hours = datetime.time(3,0) 
if c >= three_hours: 
    #do stuff 

, но я получаю ошибку говоря не могу сравнить йа tetime.teimdelta to datetime.time

У меня вопрос другой, поскольку я также хочу сравнить вычитаемое время, а не просто получить разницу !!

Как преобразовать их в правильные форматы, чтобы я мог проверить, прошло ли 3 часа?

Спасибо за помощь

+0

http://stackoverflow.com/questions/3426870/calculating-time -difference – dsgdfg

+0

Значение объекта datetime.timedelta d может быть преобразовано в часы с d.days * 24 + (d.seconds + d.microseconds * 10 ** 6)/3600 –

ответ

3

Когда вы вычитать два объекта даты-времени в Python, вы получите datetime.timedelta объект. Затем вы можете получить total_seconds() для этого объекта timedelta и проверить, превышает ли это 3*3600, что составляет количество секунд в течение 3 часов. Пример -

>>> a = datetime.datetime.now() 
>>> b = datetime.datetime(2015,8,25,0,0,0,0) 
>>> c = a - b 
>>> c.total_seconds() 
87062.729491 
>>> c.total_seconds() > 3*3600 
True 
1

Вы можете сделать это

three_hours = 3600*3 # in seconds 

if c.total_seconds() >= three_hours: 
    # do stuff 
-1

Вы также можете просто сравнить с другим объектом timedelta

import datetime 
if c >= datetime.timedelta(hours=3): 
    #do something 
Смежные вопросы