У меня есть код для преобразования некоторых временных меток, хранящихся в виде строк в объекты datetime, и заметил сегодня исключения, когда он преобразует даты со значением временной метки времени, превышающим максимальное значение int.Преобразование временных меток, больших, чем maxint, в объекты datetime
datetime.datetime.fromtimestamp(2147570047)
, например, дает мне
ValueError: timestamp out of range for platform time_t
Как я могу обойти эту проблему? предполагая, что я хочу остановиться на 32-битном python (работает 2.7.2)
Я заметил, что могу преобразовать max int в объект datetime, а затем добавить любые дополнительные данные с timedeltas, но я не мог придумать особо эффективного или хороший способ сделать это на практике. Каким образом я могу преобразовать эти метки времени 2038+ в объекты datetime?
причина 'fromtimestamp' имеет проблемы (на некоторых системах) является то, что она основана на системе C функции. В документации отмечается, что это часто ограничивается 1970-2038 годами. «Timedelta», с другой стороны, настраивается на Python и обрабатывает длительности до чуть менее одного миллиарда дней. –