gpt4 book ai didi

python - 在 python 中从字符串中提取日期时间的最佳方法

转载 作者:太空宇宙 更新时间:2023-11-03 12:51:16 27 4
gpt4 key购买 nike

我有一个脚本可以解析电子邮件 header 中代表日期和时间的字段。这些字符串的一些示例如下:

Fri, 10 Jun 2011 11:04:17 +0200 (CEST)
Tue, 1 Jun 2011 11:04:17 +0200
Wed, 8 Jul 1992 4:23:11 -0200
Wed, 8 Jul 1992 4:23:11 -0200 EST

在我遇到一些字符串末尾的 CEST/EST 部分之前,我使用 datetime.datetime.strptime 就可以很好地工作,如下所示:

msg['date'] = 'Wed, 8 Jul 1992 4:23:11 -0200'
mail_date = datetime.datetime.strptime(msg['date'][:-6], '%a, %d %b %Y %H:%M:%S')

我试图将正则表达式放在一起以匹配字符串的日期部分,同时在末尾排除时区信息,但我遇到了正则表达式的问题(我无法匹配冒号)。

使用正则表达式是解析上述所有示例的最佳方式吗?如果是这样,有人可以分享一个匹配这些例子的正则表达式吗?最后,我希望有一个日期时间对象。

最佳答案

来自 python time to age part 2, timezones :

from email import utils
utils.parsedate_tz('Fri, 10 Jun 2011 11:04:17 +0200 (CEST)')
utils.parsedate_tz('Fri, 10 Jun 2011 11:04:17 +0200')
utils.parsedate_tz('Fri, 10 Jun 2011 11:04:17')

输出是:

(2011, 6, 10, 11, 4, 17, 0, 1, -1, 7200)
(2011, 6, 10, 11, 4, 17, 0, 1, -1, 7200)
(2011, 6, 10, 11, 4, 17, 0, 1, -1, None)

关于python - 在 python 中从字符串中提取日期时间的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6307176/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com