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