How can I format timedelta for display

python

Solution

Have you tried using `str()`?

>>> a = datetime.now()                 
>>> b = datetime.now() - a
>>> b
datetime.timedelta(0, 6, 793600)
>>> str(b)
'0:00:06.793600'

Alternatively, you can use string formatting:

>>> a = datetime.now()                 
>>> b = datetime.now() - a
>>> s = b.total_seconds()
>>> '{:02}:{:02}:{:02}'.format(s // 3600, s % 3600 // 60, s % 60)
'00:00:06'

Problem

My script calculate the difference in 2 time. Like this: ``` lasted = datetime.strptime(previous_time, FMT) - datetime.strptime(current_time, FMT) ``` It returns me a timedelta object. Currently, it gives me difference in seconds. How can I format it for display nicely? e.g. convert "121" to "00:02:01"? Thank you.

Original source

Related problems