Парсы датируются до 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).

  • Какое наибольшее число может обрабатывать десятичный класс?
  • Загрузка локального файла с клиента на распределенный кластер dask
  • Преобразование python3 между cvxopt.matrix и numpy.array
  • `xrange (2 ** 100)` -> OverflowError: long int too large для преобразования в int
  • Pip или easy_install с Python 3.x взрываются при установке чего-либо с помощью mingw
  • Повторный запрос Redshift + SQLAlchemy
  • сопоставление переменных размеров
  • Как закодировать текст на base64 в python
  • Python - лучший язык программирования в мире.