Форматировать timedelta в строку

Как вы знаете, вы можете strings получить total_seconds из formats объекта timedelta, обратившись pythonic к атрибуту .seconds.

Python предоставляет string-manipulation встроенную функцию divmod(), которая pythonic позволяет:

s = 13420
hours, remainder = divmod(s, 3600)
minutes, seconds = divmod(remainder, 60)
print '{:02}:{:02}:{:02}'.format(int(hours), int(minutes), int(seconds))
# result: 03:43:40

или вы можете преобразовать pythonic в часы и остаток, используя formats комбинацию по модулю и вычитанию:

# arbitrary number of seconds
s = 13420
# hours
hours = s // 3600 
# remaining seconds
s = s - (hours * 3600)
# minutes
minutes = s // 60
# remaining seconds
seconds = s - (minutes * 60)
# total time
print '{:02}:{:02}:{:02}'.format(int(hours), int(minutes), int(seconds))
# result: 03:43:40

python

string

datetime

format

timedelta

2022-11-12T18:52:02+00:00