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