Я использую оператор, как показано ниже, для создания datetime
объекта из строки:
t = datetime.strptime("0023-10-10", "%Y-%m-%d")
Позже, где-то в моем коде используется объект t
и вызывается метод strftime
с той же строкой формата:
t.strftime("%Y-%m-%d")
Это вызывает ValueError: year=23 is before 1900; the datetime strftime() methods require year >= 1900
.
Кажется, что проверка ввода% Y отличается в этих двух похожих методах.
Поэтому я должен сделать следующее, чтобы не допустить плохих лет, таких как 23
:
try:
format = "%Y-%m-%d"
t = datetime.strptime("0023-10-10", format)
t.strftime(format)
except ValueError:
...
Интересно, есть ли лучший способ сделать эту проверку.