首页 > 解决方案 > 如何计算两个日期时间之间的时间差异?

问题描述

diff = reference_time - topic_time
hour = round((reference_time-topic_time) / datetime.timedelta(hours=1))

如果 reference_time = '2020-08-23 07:00:10' 和 topic_time = '2020-08-22 00:00:00',则“diff”变量为:

days = 1
seconds = 25210

“小时”转换代码使小时 = 31,这似乎不正确。一天内的最大差异应小于 24 小时。在这种情况下如何计算时间差异并转换为小时?

标签: pythondatetime

解决方案


import datetime

firstTime = datetime.datetime.utcnow()
secondTime = datetime.datetime.utcnow() + datetime.timedelta(hours=5)
diff = secondTime - firstTime
hours = diff.total_seconds() // 3600
print(hours) # Answer is 5


reference_time = datetime.datetime(2020,8,23,7)
topic_time = datetime.datetime(2020,8,22,0)
hours = (reference_time - topic_time).total_seconds() // 3600
days = hours // 24
hours = hours - (days*24)
print('days: %d, hours: %d' % (days, hours) ) # days:1, hours:7

推荐阅读