Как сделать так, чтобы dateutil.parser явно указывал дату, месяц и год? - PullRequest
0 голосов
/ 10 апреля 2019

Поведение по умолчанию 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: Если есть другие библиотеки, которые предоставляют такую ​​функциональность, пожалуйста, дайте мне знать. Я не смог найти ни одного.

...