Как проверить строку на дату?
Мне нужно проверить строку на дату.
Дата может быть в двух форматах: '%d.%m' и '%d.%m.%Y'
Пробовал:
d = '09.01.2020'
try:
datetime.datetime.strptime(d, '%d.%m') or datetime.datetime.strptime(d, '%d.%m.%Y')
except:
print('неверный формат')
Вывод:
неверный формат
Ответы (1 шт):
Автор решения: Tehnorobot
→ Ссылка
- Исходя из вашего кода, вы отправляете в
exceptвсе ошибки, включая ту, которая возникает, из-за того, что вы не импортировали библиотекуdatetime
Предложу такой вариант решения:
import datetime
d = '09.01.2020'
if len(d.split('.')) == 3:
try:
datetime.datetime.strptime(d, '%d.%m.%Y')
print('Ok')
except Exception:
print('неверный формат')
else:
try:
datetime.datetime.strptime(d, '%d.%m')
print('Ok')
except Exception:
print('неверный формат')
Вывод:
Ok
Я написал в except значение Exception, чтобы не отлавливать каждую по отдельности ошибку, а все сразу. Вы можете указать конкретные ошибки и уже с ними взаимодействовать.