如何在python 2.7中获得超过24小时的小时值?

时间:2017-08-09 05:56:39

标签: python-2.7

time1 = timedelta(days=2, hours=6.20)
time2 = timedelta(hours=20.10)
sum_time = time1 + time2
print str(sum_time)
print sum_time.total_seconds() / 3600

输出:

3 days, 2:18:00
74.3

如何获得输出 74:18:00

1 个答案:

答案 0 :(得分:2)

使用total_Seconds / 3600,您只能获得十进制格式的小时数。

您可以使用divmod将秒数分解为完整的小时,分​​钟和秒:

  

divmod(a,b)

     

取两个(非复数)数作为参数,并在使用长除法时返回一对由商和余数组成的数字

代码看起来像这样(我在time2中添加了34秒来检查秒部分是否正确):

from datetime import timedelta
time1 = timedelta(days=2, hours=6.20)
time2 = timedelta(hours=20.10, seconds=34)
sum_time = time1 + time2
print str(sum_time)
hours, seconds = divmod(sum_time.total_seconds(), 3600)
minutes,  seconds = divmod(seconds, 60)
print "%d:%02d:%02d" % (hours, minutes, seconds)

,输出结果为:

3 days, 2:18:34
74:18:34

第一个divmod的结果是74小时(商),剩余的1114秒。 第二个divmod是从前一行(1114)开始的剩余秒数,并给出18分34秒的结果。