Python 时间求和

25 投票
9 回答
62054 浏览
提问于 2025-04-15 22:25

在Python中,我该如何把以下时间加起来呢?

 0:00:00
 0:00:15
 9:30:56

9 个回答

31

使用时间差(在Python 3.9中测试过):

import datetime

timeList = ['0:00:00', '0:00:15', '9:30:56']
mysum = datetime.timedelta()
for i in timeList:
    (h, m, s) = i.split(':')
    d = datetime.timedelta(hours=int(h), minutes=int(m), seconds=int(s))
    mysum += d
print(str(mysum))

结果:

9:31:11
31

这要看你这些时间的形式,比如说如果你已经把它们做成了 datetime.timedelta 的格式,那么你可以直接把它们加在一起:

>>> s = datetime.timedelta(seconds=0) + datetime.timedelta(seconds=15) + datetime.timedelta(hours=9, minutes=30, seconds=56)
>>> str(s)
'9:31:11'
21

作为一个字符串列表?

timeList = [ '0:00:00', '0:00:15', '9:30:56' ]
totalSecs = 0
for tm in timeList:
    timeParts = [int(s) for s in tm.split(':')]
    totalSecs += (timeParts[0] * 60 + timeParts[1]) * 60 + timeParts[2]
totalSecs, sec = divmod(totalSecs, 60)
hr, min = divmod(totalSecs, 60)
print "%d:%02d:%02d" % (hr, min, sec)

结果:

9:31:11

撰写回答