解析多种日期字符串语言和格式

Parsing multiple date string languages and formats

提问人:Clodoaldo Neto 提问时间:6/2/2023 更新时间:6/2/2023 访问量:31

问:

我正在解析文本文件中的电子邮件列表,我需要解析电子邮件标题中的日期。日期有多种格式和语言:

sexta-feira, 26 de agosto de 2022 16:41
viernes, 26 de agosto de 2022 19:24
2022/08/26 13:30:56
26 de agosto de 2022 13:32:49 BRT

主要是葡萄牙语、西班牙语、意大利语和英语。

什么是最好的建议?我已经尝试过,但日期解析非常基本。目前,我只能访问从源导出的文本文件,而不能访问源文件。BabelOutlooksmpt

python 字符串 日期 解析 国际化

评论


答:

1赞 Seon 6/2/2023 #1

dateparser 包提供了用于解析大多数字符串格式的本地化日期的模块。

以下代码片段成功检索给定示例中的所有日期:

import dateparser

text_dates = [
    "sexta-feira, 26 de agosto de 2022 16:41",
    "viernes, 26 de agosto de 2022 19:24",
    "2022/08/26 13:30:56",
    "26 de agosto de 2022 13:32:49 BRT",
]

datetimes = [dateparser.parse(line) for line in text_dates]
print(datetimes)

>>> [datetime.datetime(2022, 8, 26, 16, 41),
 datetime.datetime(2022, 8, 26, 19, 24),
 datetime.datetime(2022, 8, 26, 13, 30, 56),
 datetime.datetime(2022, 8, 26, 13, 32, 49, tzinfo=<StaticTzInfo 'BRT'>)]