在Python中添加持续时间

Sam*_*man 3 python time datetime

我想在Python中添加一系列拆分.时间以"00:08:30.291"之类的字符串开头.我似乎无法找到使用Python对象或API来使这个方便/优雅的正确方法.似乎时间对象不使用微秒,所以我使用datetime的strptime来成功解析字符串.但是,日期时间似乎没有添加,我真的不想溢出几天(即23 + 2小时= 25小时).我可以使用datetime.time但它们也不会添加.Timedeltas似乎是合适的,但似乎有点尴尬从其他事物转换.也许我错过了一些明显的东西.我希望能够:

for timestring in times:
    t = datetime.strptime("%H:%M:%S.%f", timestring).time
    total_duration = total_duration + t
print total_duration.strftime("%H:%M:%S.%f")
Run Code Online (Sandbox Code Playgroud)

Sil*_*ost 11

您正在使用的是时差,这就是为什么使用datetime.timedelta仅适用于此:

>>> import datetime
>>> d1 = datetime.datetime.strptime("00:08:30.291", "%H:%M:%S.%f")
>>> d1
datetime.datetime(1900, 1, 1, 0, 8, 30, 291000)
>>> d2
datetime.datetime(1900, 1, 1, 0, 2, 30, 291000)
>>> dt1 = datetime.timedelta(minutes=d1.minute, seconds=d1.second, microseconds=d1.microsecond)
>>> dt2 = datetime.timedelta(minutes=d2.minute, seconds=d2.second, microseconds=d2.microsecond)
>>> fin = dt1 + dt2
>>> fin
datetime.timedelta(0, 660, 582000)
>>> str(fin)
'0:11:00.582000'
Run Code Online (Sandbox Code Playgroud)

另外,请不要使用sum变量这样的名称,而是内置阴影.