通过电子邮件解析日期和时区?

通过电子邮件解析日期和时区?,第1张

通过电子邮件解析日期和时区

email.utils
具有
parsedate()
RFC 2822格式的功能,据我所知,该功能尚未弃用。

>>> import email.utils>>> import time>>> import datetime>>> email.utils.parsedate('Mon, 16 Nov 2009 13:32:02 +0100')(2009, 11, 16, 13, 32, 2, 0, 1, -1)>>> time.mktime((2009, 11, 16, 13, 32, 2, 0, 1, -1))1258378322.0>>> datetime.datetime.fromtimestamp(1258378322.0)datetime.datetime(2009, 11, 16, 13, 32, 2)

但是请注意,该

parsedate
方法未考虑时区,并且
time.mktime
始终期望使用此处提到的本地时间元组。

>>> (time.mktime(email.utils.parsedate('Mon, 16 Nov 2009 13:32:02 +0900')) ==... time.mktime(email.utils.parsedate('Mon, 16 Nov 2009 13:32:02 +0100'))True

因此,您仍然需要解析时区并考虑本地时差:

>>> REMOTE_TIME_ZONE_OFFSET = +9 * 60 * 60>>> (time.mktime(email.utils.parsedate('Mon, 16 Nov 2009 13:32:02 +0900')) +... time.timezone - REMOTE_TIME_ZONE_OFFSET)1258410122.0


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5630797.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存