анализатор даты возвращает неправильную дату, когда AM/PM указан с ошибкой

#python #dateparser

Вопрос:

Есть ли какая-то логика в приведенных ниже результатах? Как их можно избежать?

 dateparser.parse('6/16/21 11:00 ma')
 

Возвращается 8/7/21 в 2:14 вечера. Это неправильно.

 dateparser.parse('6/16/21 11:00 eb')
 

Возвращается 21.06.16 в 11:00 вечера. Это неправильно, и мы должны предпочесть, чтобы eb был неинтерпретируемым, а dateparser.parse не возвращал ничего.

 dateparser.parse('6/16/21 11:00 so')
 

Возвращается 21.06.16 в 11:00. Опять же, это неправильно, и мы должны предпочесть, чтобы dateparser.parse не возвращал ничего.

Комментарии:

1. Прежде чем вызывать анализатор даты, проверьте строку самостоятельно, чтобы увидеть, заканчивается ли она на AM или PM.

Ответ №1:

Проверьте settings= параметр dateparser.parse функции.

Эти настройки могут быть сделаны из нескольких различных вариантов. Я думаю STRICT_PARSING , и REQUIRE_PARTS варианты-это то, что вам нужно