Парсы датируются до 1000 года

Рассмотрим следующий пример:

from datetime import datetime FMT = "%Y-%m-%dT%H:%M:%S" original_date = datetime(1,1,1) s = original_date.strftime(FMT) # This is '1-01-01T00:00:00' 

Когда я теперь пытаюсь проанализировать эту строку обратно в datetime с точным форматом, который я использовал для его сериализации, во-первых, меня бросает ValueError :

 datetime.strptime(s, FMT) 

ValueError: данные времени '1-01-01T00: 00: 00' не соответствует формату '% Y-% m-% dT% H:% M:% S'

Однако

 datetime.strptime('0001-01-01T00:00:00', FMT) 

работает, как ожидалось. Я бы ожидал, что strptime сможет обрабатывать все, что strptime strftime . Я всегда считал эти функции противоположными.

Почему original_date.strftime(FMT) не приводит к нулевому заполнению года? Есть ли причина для этой несогласованности?

One Solution collect form web for “Парсы датируются до 1000 года”

Результаты для %Y не согласуются между платформами. В Mac OS X он вернется в 0001 но в Linux он возвращает 1 .

В Linux вы можете использовать %4Y для получения 0001 качестве значения года.

Это известная проблема: https://bugs.python.org/issue13305 .

В документации для strftime() и strptime() также указано:

Полный набор поддерживаемых форматов зависит от разных платформ, потому что Python вызывает функцию strftime () библиотеки платформы C, и вариации платформы являются общими. Чтобы увидеть полный набор кодов формата, поддерживаемых на вашей платформе, обратитесь к документации по strftime (3).

  • Python webbrowser.open (), чтобы открыть браузер Chrome
  • Почему super () не работает со статическими методами, отличными от __new__?
  • Неблокирующий ввод-вывод с асинхронным
  • Чтение и печать файлов Python с исключениями и окончаниями
  • Проверьте идеальные квадраты в списке
  • Как передать несколько аргументов функции apply
  • эквивалентно команде find coreutil в python 3 для рекурсивного возвращения всех файлов и папок в структуру каталогов?
  • Загрузка текстового файла, содержащего как float, так и строку, используя numpy.loadtxt
  • Python - лучший язык программирования в мире.