Я пытаюсь выяснить, что особенного о 16 марта 1984. На виртуальной машине, которую я использую (ничего особенного), Python (а также PyPy) падает при попытке использовать mktime с тем, что кажется совершенно разумная структура времени.Что произошло 16 марта 1984 года?
$ pypy
Python 2.7.3 (f66246c46ca30b26a5c73e4cc95dd6235c966b8f, Jul 30 2013, 09:27:06)
[PyPy 2.0.2 with GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>> import time
>>>> time.mktime((1984,3,16,0,0,0,0,0,0))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OverflowError: mktime argument out of range
>>>> time.mktime((1984,3,15,0,0,0,0,0,0))
448156800.0
>>>> time.mktime((1984,3,17,0,0,0,0,0,0))
448326000.0
>>>> time.mktime((1984,3,16,0,0,0,0,0,0))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OverflowError: mktime argument out of range
>>>>
Зачем и что можно сделать, чтобы избежать этой проблемы?
Несмотря на то, что проблема возникает каждый раз на этой виртуальной машине, я не мог заставить ее встречаться ни на одном другом.
Странно. Не создает проблем на моей машине (Mac OS, Python 2.7). – Floris
Я думал, что это может быть скачок секунд, но ни один не был добавлен в 1984 году (в любую дату) см. Http://en.wikipedia.org/wiki/Leap_second. Я подозреваю, что ошибка в вашей версии Python ... – Floris
Ничего добавить кроме этого у меня тоже нет. Очень странно. – verbsintransit