python 邮件时间如何快速处理

python从邮件获取的时间是这样的字符串:Wed, 8 Jul 2015 15:18:12 +0800 (UTC),怎么快速转换成日期对象呢。
发现邮件里的日期格式还不一样,这下得正则匹配咯。
不知道poplib中,有没快速获取邮件发送日期对象的方法。

可以使用datetime包的strptime函数

from datetime import datetime
s = 'Wed, 8 Jul 2015 15:18:12 +0800 (UTC)'
date = datetime.strptime(s[5:24],'%d %b %Y %H:%M:%S')
print('Month:', date.month)
print('Day:', date.day)

'%d %b %Y %H:%M:%S',是时间字符串,每一个%x对应一种类型的时间

会解析成datetime类型

追问

这种我知道,我就是想知道+0800 (UTC)这后面的有没办法转,如果是其他时区的,怎么转换成本地时区呢。

追答from datetime import datetime, timezone, timedelta
zone = timezone(timedelta(hours=8))
s = 'Wed, 8 Jul 2015 15:18:12 +0700 (UTC)'
date = datetime.strptime(s[5:30],'%d %b %Y %H:%M:%S %z')
print(date.astimezone(zone))
# 2015-07-08 16:18:12+08:00

追问

发现邮件里的日期格式还不一样,这下得正则匹配咯。
不知道poplib中,有没快速获取邮件发送日期对象的方法。

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答