我正在尝试从电子邮件中检索日期。一开始很简单:
message = email.parser.Parser().parse(file)
date = message['Date']
print date
我收到:
'Mon, 16 Nov 2009 13:32:02 +0100'
但是我需要一个很好的日期时间对象,所以我使用:
datetime.strptime('Mon, 16 Nov 2009 13:32:02 +0100', '%a, %d %b %Y %H:%M:%S %Z')
这引发了 ValueError, since %Z isn't format for +0100
。但是我在文档中找不到正确的时区格式,只有这个 %Z
用于时区。有人可以帮我吗?
原文由 gruszczy 发布,翻译遵循 CC BY-SA 4.0 许可协议
email.utils
有一个parsedate()
RFC 2822 格式的函数,据我所知,它没有被弃用。但是请注意,
parsedate
方法没有考虑时区,并且time.mktime
总是需要本地时间元组。所以你仍然需要解析时区并考虑当地时差: