dateparser.parse 正在将日期和月份交换为小于 13 的值

dateparser.parse is swapping day and month for values less than 13

所以,我正在使用 dateparser.parse 来提取年月日。对于大于 13 的值,它工作正常。但是,对于小于 13 的值,它会交换日期和月份。例如,在 DD/MM/YYYY 格式中,如果输入是 1990 年 11 月 13 日,则输出符合预期的月 -> 11 和日 -> 13。但如果输入是 1990 年 8 月 9 日,则输出为月 -> 8 和日 -> 9。

dateparser.parse('13/11/1990','d/M/yyyy')
datetime.datetime(1990, 11, 13, 0, 0)

dateparser.parse('8/9/1990','d/M/yyyy')
datetime.datetime(1990, 8, 9, 0, 0)

The documentation 说:

dateparser.parse(date_string, date_formats=None, ...)
  • date_formats (list) – A list of format strings using directives as given here. The parser applies formats one by one, taking into account the detected languages/locales.

您既没有将格式字符串作为列表提供,也没有遵循 linked 格式。它应该看起来像这样:

dateparser.parse('8/9/1990', ['%d/%m/%Y'])