python %z - Python: Преобразование из `datetime.datetime` в` time.time`




3 Answers

Нетрудно использовать метод временного кортежа и сохранить микросекунды:

>>> t = datetime.datetime.now()
>>> t
datetime.datetime(2011, 11, 5, 11, 26, 15, 37496)

>>> time.mktime(t.timetuple()) + t.microsecond / 1E6
1320517575.037496
calendar monthrange

В Python, как мне преобразовать datetime.datetime в тип float который я получил бы от функции time.time ?




Учитывая объект datetime.datetime dt , вы можете использовать

(dt - datetime.datetime.utcfromtimestamp(0)).total_seconds()

Пример:

>>> dt = datetime.datetime.now(); t = time.time()
>>> t
1320516581.727343
>>> (dt - datetime.datetime.utcfromtimestamp(0)).total_seconds()
1320516581.727296

Обратите внимание, что метод timedelta.total_seconds() был введен в Python 2.7.




Я знаю, что это старый вопрос, но в python 3.3+ теперь есть более простой способ сделать это с помощью метода datetime.timestamp() :

from datetime import datetime
timestamp = datetime.now().timestamp()



Related

python time calendar