Subtract Two DateTime objects – Python

Question:

I have two date time objects like this

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

And then

c = a - b

Now I want to compare c and check if the difference was greater than 3 hours, so I have a time object called three_hours

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

but I get an error saying cannot compare datetime.teimdelta to datetime.time

My question is different as I also want to then compare the subtracted time, not just get the difference!!

How can I convert them to the correct formats so I can check if 3 hours has passed?

Thanks for the help

Asked By: spen123

||

Answers:

When you subtract two datetime objects in python, you get a datetime.timedelta object. You can then get the total_seconds() for that timedelta object and check if that is greater than 3*3600 , which is the number of seconds for 3 hours. Example –

>>> 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
Answered By: Anand S Kumar

You can do this

three_hours = 3600*3 # in seconds

if c.total_seconds() >= three_hours:
    # do stuff
Answered By: YOBA

You can also just compare to another timedelta object

import datetime
if c >= datetime.timedelta(hours=3):
   #do something
Answered By: NightShadeQueen
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.