Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
减去两个DateTime对象-Python_Python_Datetime_Time - Fatal编程技术网

减去两个DateTime对象-Python

减去两个DateTime对象-Python,python,datetime,time,Python,Datetime,Time,我有两个像这样的日期时间对象 a = first date time object b = second date time object 然后 c = a - b 现在我想比较c,检查差值是否大于3小时,因此我有一个名为three\u hours three_hours = datetime.time(3,0) if c >= three_hours: #do stuff 但是我得到一个错误,说不能比较datetime.teimdelta和datetime.time 我的

我有两个像这样的日期时间对象

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

c = a - b
现在我想比较c,检查差值是否大于3小时,因此我有一个名为
three\u hours

three_hours = datetime.time(3,0)
if c >= three_hours:
     #do stuff
但是我得到一个错误,说不能比较datetime.teimdelta和datetime.time

我的问题是不同的,因为我还想比较减去的时间,而不仅仅是得到差异

如何将它们转换为正确的格式,以便检查是否已过3个小时


感谢您的帮助

当您在python中减去两个datetime对象时,您将得到一个对象。然后,您可以获取该timedelta对象的
total_seconds()
,并检查其是否大于
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
你可以这样做

three_hours = 3600*3 # in seconds

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

您还可以与另一个timedelta对象进行比较

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

datetime.timedelta对象d的值可以转换为小时,d.days*24+(d.seconds+d.microsonds*10**6)/3600