Unix epoch time in the Python
Начало эпохи Unix отмечается с 00:00:00 UTC on January 1, 1970 Ссылка на Wiki
Следовательно это время должно быть 0 счетчика, а все значения раньше иметь знак “-“. В очередной рабочей задаче наталкиваюсь на ошибку:
from time import mktime
time_tuple = (1970, 1, 1, 2, 53, 0, 3, 1, -1)
print mktime(time_tuple)
Получаю дату в float: -420.0
Для справок:
Type: builtin_function_or_method
Docstring:
mktime(tuple) -> floating point number
Convert a time tuple in local time to seconds since the Epoch.
Timetuple:
localtime([seconds]) -> (tm_year,tm_mon,tm_mday,tm_hour,tm_min,tm_sec,tm_wday,tm_yday,tm_isdst)
Чтобы получить дату в unixtime = 0.0, надо сделать время 00:03, 1 января 1970 года
Проверяем:
from time import mktime
time_tuple = (1970, 1, 1, 3, 0, 0, 3, 1, -1)
print mktime(time_tuple)
Вывод: 0.0
Может у меня лыжи не едут?Единственная загвоздка в GMT относительно моего местоположения. Возможно такие наблюдения помогут кому-то не допустить ошибки.Подробнее о дате и смещениях



















Comments
(1970, 1, 1, 3, 0, 0, 3, 1, -1) это 1 января 1970, 03 часа 00 минут. Дело в часовых поясах.
Да, так выше и написано. Бывают такие ошибки, суть поста — привлечь людей к внимательности.
.
Не так там написано.
Вообщем то у меня не возникает вопросов по данной ситуации, результат ожидаемый.
..bw
Значит столь пустой пост был не зря =).
Результат действительно ожидаемый, но это не уменьшает количество ошибок которые мне приходится исправлять в чужом коде. Ошибки эти по большей части из-за невнимательности. У меня была мысль начать выкладывать забавные куски кода, которые я встречаю и рецензировать их тут, но это скорее занятие для баша и тех кто не спит…
Надо такие темы помечать как-то особенно =). Уточек рисовать.