如何在Python中求timedelta的总和?

33 投票
6 回答
42989 浏览
提问于 2025-04-16 06:16

Python:如何计算时间差的总和?

比如,我现在有很多时间差对象(timedelta),我想要把它们加在一起。就这么简单!

6 个回答

2

如果你有一堆时间差对象(timedelta),你可以试试这样做:

用这段代码:datetime.timedelta(seconds=sum(td.total_seconds() for td in list_of_deltas))

62

要添加时间差,你可以使用内置的运算符 +

result = timedelta1 + timedelta2

如果你想添加很多时间差,可以使用 sum 函数:

result = sum(timedeltas, datetime.timedelta())

或者使用 reduce 函数:

import operator
result = reduce(operator.add, timedeltas)
14

datetime的combine方法可以让你把时间和一个时间差结合在一起。

datetime.combine(date.today(), time()) + timedelta(hours=2)

时间差可以用普通的'+'运算符来组合。

>>> timedelta(hours=3) 
datetime.timedelta(0, 10800)
>>> timedelta(hours=2)
datetime.timedelta(0, 7200)
>>>
>>> timedelta(hours=3) + timedelta(hours=2)
datetime.timedelta(0, 18000)
>>> 

你可以查看datetime模块的文档,还有一个很好的简单介绍在这里:

撰写回答