Python 无法计算两天(以小时为单位)之间的差异

Python 无法计算两天(以小时为单位)之间的差异,python,Python,我需要检查一些日期和现在是否与18小时内的不同: dt = parser.parse("some date 123") #working well diff = datetime.datetime.now() - dt print "datetime.datetime.now() - dt = %s" % diff # 31 days, 0:08:04.882498 -- correct print "datetime.datetime.now() - dt seconds = %s" %

我需要检查一些日期和现在是否与18小时内的不同:

dt = parser.parse("some date 123") #working well

diff = datetime.datetime.now() - dt
print "datetime.datetime.now() - dt = %s" % diff  # 31 days, 0:08:04.882498 -- correct
print "datetime.datetime.now() - dt seconds = %s" % diff.seconds # 484 -- too

(datetime.datetime.now() - dt).seconds / 3600) < 18 # returns True always
正如你所看到的,尽管31天内的日期不同,但秒数非常少,这不允许我计算小时数。为什么它这么小?它应该是x*60*60*天的数量吗?我该怎么做呢?

你可以试试这个:

from datetime import date

date0 = date(2014, 9, 07)
date1 = date(2014, 9, 05)
diff = date0 - date1
print diff.days * 24
也检查


秒返回的只是秒数,而不是总秒数,你可以使用。

为什么要将不同的天数乘以24?@AlexanderSupertramp:-我以为你想要小时数的差异。因此1天等于24,因此乘以24。“我错过了什么吗?”亚历山大超级流浪汉我回答说。如果以天为单位计算差值,那么将其乘以24,那么18小时怎么样?您确定此代码可以返回与x*24不同的小时数,例如29小时?我应该用total_seconds来代替吗?@AlexanderSupertramp:-如果您遇到任何问题,您可以尝试一下并告诉我们:
>>> from datetime import datetime
>>> date0 = datetime(2014,09,07,0,0,0)
>>> date1 = datetime(2014,09,01,23,59,59)
>>> date0-date1
datetime.timedelta(6, 1)
>>> (date0-date1).days * 24
144