How do I convert seconds to hours, minutes and seconds? How do I convert seconds to hours, minutes and seconds? python python

How do I convert seconds to hours, minutes and seconds?


You can use datetime.timedelta function:

>>> import datetime>>> str(datetime.timedelta(seconds=666))'0:11:06'


By using the divmod() function, which does only a single division to produce both the quotient and the remainder, you can have the result very quickly with only two mathematical operations:

m, s = divmod(seconds, 60)h, m = divmod(m, 60)

And then use string formatting to convert the result into your desired output:

print('{:d}:{:02d}:{:02d}'.format(h, m, s)) # Python 3print(f'{h:d}:{m:02d}:{s:02d}') # Python 3.6+


I can hardly name that an easy way (at least I can't remember the syntax), but it is possible to use time.strftime, which gives more control over formatting:

from time import strftimefrom time import gmtimestrftime("%H:%M:%S", gmtime(666))'00:11:06'strftime("%H:%M:%S", gmtime(60*60*24))'00:00:00'

gmtime is used to convert seconds to special tuple format that strftime() requires.

Note: Truncates after 23:59:59