Python: преобразование времени unix в продолжительность

a = time.time()
b = time.time()
c = b - a

Я знаю, что c находится в секундах. Есть ли мод (возможно, datetime или time), где он может преобразовывать секунды в любую форму продолжительности?

например: я хочу сказать

print convert_time(c, days=True) 
print convert_time(c, hours=True) 

и так далее....

Я знаю, что могу просто преобразовать его вручную, но мне было интересно, есть ли что-нибудь, что я могу использовать вместо написания собственной функции.


person ealeon    schedule 03.10.2014    source источник


Ответы (2)


Ответ уже был дан Python Time Seconds to h: m: s

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

Не знаю, как отметить тему как повторяющуюся. Простите меня за это.

person Lars de Bruijn    schedule 03.10.2014
comment
В качестве дополнения вы можете получить доступ к атрибутам timedelta, например: datetime.timedelta(seconds=6660000).days - person Slava Bacherikov; 03.10.2014

Вы можете использовать dateutil relativedelta для этого:

>>> from dateutil.relativedelta import relativedelta
>>> relativedelta(seconds=5000).hours
1
>>> relativedelta(seconds=5000).minutes
23
>>> relativedelta(seconds=5000).seconds
20

Множество других хороших опций, но в них есть встроенные средства преобразования, которые мне бы хотелось, чтобы у стоковой datetime.timedelta были.

person myersjustinc    schedule 03.10.2014