Я пытаюсь написать пару функций dt и ut, которые преобразуют назад и вперед между нормальным временем unix (секунды с 1970-01-01 00:00:00 UTC) и дата и время Python объект.
Если dt и ut были правильными обратными, тогда этот код дважды печатает одну и ту же метку времени:
import time, datetime
# Convert a unix time u to a datetime object d, and vice versa
def dt(u): return datetime.datetime.fromtimestamp(u)
def ut(d): return time.mktime(d.timetuple())
u = 1004260000
print u, "-->", ut(dt(u))
Увы, вторая временная метка составляет 3600 секунд (час) меньше, чем первая.
Я думаю, что это происходит только в самых разных ситуациях, возможно, в тот час, когда переход на летнее время проскакивает.
Но есть ли способ написать dt и ut, чтобы они были истинными инверсиями друг друга?
Связанный вопрос: Создание matplotlib's date2num и num2date совершенные обратные