如何以小时、分钟和秒为单位计算两个日期之间的时间差?

34

我已经约了两个人

import datetime
data1 = datetime.datetime.now()
data2 = datetime.datetime.now()

我已经这样做了,我得到了分钟和秒。但我还想得到小时,我该怎么做?

我的代码:

diff = data2-data1
divmod(diff.days * 86400 + diff.seconds, 60)
(3, 45)

我怎么才能得到小时数呢?任何帮助都将不胜感激。


你尝试过什么?c是什么?这两个日期是什么(如果都是“现在”,你期望有多大的差异?!)你是否阅读了关于timedelta的文档?(https://docs.python.org/2/library/datetime.html#timedelta-objects) - jonrsharpe
@jonrsharpe,抱歉我的拼写错误,我已经更正了。 - Mulagala
@tripleee,这是我的需求与datetime.datetime.now不同的另一种方式。 - Mulagala
1个回答

66

终于找到解决方案了

import datetime
data1 = datetime.datetime.now()
data2 = datetime.datetime.now()

diff = data2 - data1

days, seconds = diff.days, diff.seconds
hours = days * 24 + seconds // 3600
minutes = (seconds % 3600) // 60
seconds = seconds % 60

print hours,minutes,seconds

4
要计算分钟差异,可以使用以下代码:total_mins = (diff.days*1440 + diff.seconds/60)。其中,diff是表示时间差异的变量。 - Avishek
22
有一个total_seconds()函数,所以你可以直接使用hours = diff.total_seconds() / 3600来计算小时数。 - justyy
4
如果时间差超过几天,total_seconds()函数会溢出。@Avishek的解决方案更好,因为它不会在一个月内溢出。 - Amir Samakar

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