我正在使用 Python 3.3。我从 IMAP 服务器收到一封电子邮件,然后将其转换为来自标准电子邮件库的电子邮件实例。
我这样做:
message.get("date")
例如,这给了我这个:
Wed, 23 Jan 2011 12:03:11 -0700
我想把它转换成我可以放进去的东西,time.strftime()
这样我就可以很好地格式化它。我想要本地时间的结果,而不是 UTC。
有这么多功能,不推荐使用的方法和侧面案例,不知道现代路线是什么?
我正在使用 Python 3.3。我从 IMAP 服务器收到一封电子邮件,然后将其转换为来自标准电子邮件库的电子邮件实例。
我这样做:
message.get("date")
例如,这给了我这个:
Wed, 23 Jan 2011 12:03:11 -0700
我想把它转换成我可以放进去的东西,time.strftime()
这样我就可以很好地格式化它。我想要本地时间的结果,而不是 UTC。
有这么多功能,不推荐使用的方法和侧面案例,不知道现代路线是什么?
像这样的东西?
>>> import time
>>> s = "Wed, 23 Jan 2011 12:03:11 -0700"
>>> newtime = time.strptime(s, '%a, %d %b %Y %H:%M:%S -0700')
>>> print(time.strftime('Two years ago was %Y', newtime))
Two years ago was 2011 # Or whatever output you wish to receive.
我使用python-dateutil来解析日期时间字符串。这个库中的函数解析对于这类任务非常方便
做这个:
import email, email.utils, datetime, time
def dtFormat(s):
dt = email.utils.parsedate_tz(s)
dt = email.utils.mktime_tz(dt)
dt = datetime.datetime.fromtimestamp(dt)
dt = dt.timetuple()
return dt
那么这个:
s = message.get("date") # e.g. "Wed, 23 Jan 2011 12:03:11 -0700"
print(time.strftime("%Y-%m-%d-%H-%M-%S", dtFormat(s)))
给出了这个:
2011-01-23-21-03-11