减去两个DateTime对象 - Python

35

我有两个如下所示的日期时间对象

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

然后

c = a - b

现在我想比较 c 并检查差异是否大于 3 小时,因此我有一个名为 three_hours 的时间对象。

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

但是我收到一个错误,说无法比较datetime.teimdelta和datetime.time

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

我该如何将它们转换为正确的格式,以便可以检查是否已经过去了3小时?

感谢帮助。


https://dev59.com/mXA75IYBdhLWcg3wMl8Z - dsgdfg
datetime.timedelta对象d的值可以通过d.days * 24 +(d.seconds + d.microseconds * 10 ** 6)/ 3600转换为小时。 - user4322779
3个回答

53

在 Python 中,当你从两个 datetime 对象中减去一个时间点,你会得到一个 datetime.timedelta 对象。你可以使用该 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

11

你也可以将其与另一个timedelta对象进行比较。

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

2

你可以做到这一点

three_hours = 3600*3 # in seconds

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接