Я столкнулся с этой проблемой, но нашел решение после небольшого исследования. Я разместил свой ответ ниже, чтобы показать мои выводы. Если у кого-то есть альтернативные предложения, пожалуйста, напишите их.
Мне нужно было преобразовать datetime.datime
объект в метку времени Unix. Я пытался использовать datetime.timestamp. Я обнаружил, что результат оказался на 1 час меньше, чем я ожидал. Мне удалось повторить эту проблему со следующим.
from datetime import datetime, timestamp
dt = datetime.utcfromtimestamp(1438956602.0)
ДТ теперь равно datetime.datetime(2015, 8, 7, 14, 10, 2)
Тогда:
dt_stamp = datetime.timestamp(dt)
Что дает dt_stamp = 1438953002.0
(что отличается от нашей первоначальной отметки времени). Если мы преобразуем его обратно в datetime
datetime.utcfromtimestamp(dt_stamp)
Получаем:
datetime.datetime(2015, 8, 7, 13, 10, 2)
Что на час раньше нашего первоначального времени.
Для контекста я использую Python 3 и базируюсь в Великобритании, где в настоящее время мы используем британское летнее время (на 1 час раньше UTC).
Мое решение можно найти ниже. Если вы думаете, что я что-то упустил из моего объяснения или есть лучшее решение, пожалуйста, оставьте свой собственный ответ.