2015-07-10 2 views
0

У меня есть объект datetime.time (нет даты) на python и вы хотите узнать, сколько секунд прошло с полуночи. t.hour * 3600 + t.minute * 60 + t.second, безусловно, будет работать, но есть ли более питонический путь?Как преобразовать объект времени в секундах с полуночи в python?

+1

Покажите нам код, что вы попробовали? –

ответ

0

Вы можете использовать datetime.combine() создать datetime объект, чтобы получить timedelta:

from datetime import datetime, timedelta 

td = datetime.combine(datetime.min, t) - datetime.min 
seconds = td.total_seconds() # Python 2.7+ 
integer_milliseconds = td // timedelta(milliseconds=1) # Python 3 

Он поддерживает микросекунды и любое другое будущее datetime.time.resolution.

0

К сожалению, вы не можете получить объект timedelta из двух объектов datetime.time. Тем не менее, вы можете построить и использовать его с total_seconds(), чтобы получить количество секунд, прошедших с полуночи:

In [63]: t = datetime.time(hour=12, minute=57, second=12) # for example 
In [64]: datetime.timedelta(hours=t.hour, minutes=t.minute, 
          seconds=t.second).total_seconds() 
Out[64]: 46632.0 
+0

ваша забытая часть 't.microsecond' – jfs

Смежные вопросы