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

  • Ошибка Python3.4 - Невозможно включить исполняемый стек в качестве общего объекта: Недопустимый аргумент
  • Что может привести к тому, что диалоговое окно открытого файла в Tkinter / Python будет очень медленно закрываться после того, как пользователь выберет файл?
  • Счетчик времени Python в событиях Pygame-mouse
  • Расширение Python - создание и проверка больших целых чисел эффективно
  • Python: Typehints для объектов argparse.Namespace
  • PyQt5 не удалось импортировать QtGui
  • xlwt book.save ТипError: должен быть str, а не байтами
  • Создание строки из строки и целого числа в Python
  • Конкатенация результатов двух диапазонов
  • Большинство Pythonic способ объявить абстрактное свойство класса
  • Как определить, является ли контейнер бесконечно рекурсивным и найти его самый маленький уникальный контейнер?
  • Python - лучший язык программирования в мире.