Поведение по умолчанию dateutil.parser
слишком мягкое. Он анализирует даже неоднозначные однозначные числа как действительные даты. Мне нужен более строгий парсер; тот, который требует, чтобы дата , месяц и год явно присутствовали в тексте, чтобы считаться действительной датой. Они могут быть в любом формате или порядке. Можно ли использовать dateutil.parser
?
Я использую регулярное выражение (несколько распространенных форматов) для проверки даты, но в моем наборе данных слишком много возможных форматов, которые мне нужно проанализировать. Я предполагаю, что dateutil.parser
сможет узнать, были ли определенные сущности (дата / месяц / год) угаданы или явно указаны .
Ожидаемый результат:
custom_parse("1/2/19") => datetime.date(2019, 1, 2)
custom_parse("11") => None
custom_parse("23rd jan, 2018") => datetime.date(2018, 1, 23)
custom_parse("January 2019") => None
custom_parse("12:59:13") => None
custom_parse("1-nov 19") => datetime.date(2019, 11, 1)
PS: Если есть другие библиотеки, которые предоставляют такую функциональность, пожалуйста, дайте мне знать. Я не смог найти ни одного.