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

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 3
print(f{h:d}:{m:02d}:{s:02d}) # Python 3.6+

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

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

from time import strftime
from time import gmtime

strftime(%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

Leave a Reply

Your email address will not be published. Required fields are marked *