Рассмотрим следующий пример:
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
сможет обрабатывать все strftime
. Я всегда считал эти функции противоположными друг другу.
Почему original_date.strftime(FMT)
не приводит к нулевому заполнению года? Есть ли причина для этой несогласованности?