Вопрос-Ответ

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

Как мне преобразовать секунды в часы, минуты и секундантки?

У меня есть функция, которая возвращает информацию в секундах, но мне нужно хранить эту информацию в часах: минутах: секундах.

Есть ли простой способ преобразовать секунды в этот формат в Python?

Переведено автоматически
Ответ 1

Вы можете использовать datetime.timedelta функцию:

>>> import datetime
>>> str(datetime.timedelta(seconds=666))
'0:11:06'
Ответ 2

Используя divmod() функцию, которая выполняет только одно деление для получения как частного, так и остатка, вы можете получить результат очень быстро, всего двумя математическими операциями:

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

А затем используйте форматирование строки для преобразования результата в желаемый результат:

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

Я вряд ли могу назвать это простым способом (по крайней мере, я не помню синтаксис), но можно использовать time.strftime, который дает больше контроля над форматированием:

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 используется для преобразования секунд в специальный формат кортежей, который strftime() требуется.


Примечание: Усекается после 23:59:59


Ответ 4

Это мой быстрый трюк:

from humanfriendly import format_timespan
secondsPassed = 1302
format_timespan(secondsPassed)
# '21 minutes and 42 seconds'

Для получения дополнительной информации посетите:
https://humanfriendly.readthedocs.io/en/latest/api.html#humanfriendly.format_timespan

2024-01-27 15:16 python datetime