Subtract Two DateTime objects - Python [duplicate]

£可爱£侵袭症+ 提交于 2020-12-29 09:28:23

问题


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


回答1:


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



回答2:


You can do this

three_hours = 3600*3 # in seconds

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



回答3:


You can also just compare to another timedelta object

import datetime
if c >= datetime.timedelta(hours=3):
   #do something


来源:https://stackoverflow.com/questions/32211596/subtract-two-datetime-objects-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!