2024-06-06 13:26:43 发布
网友
我有一个RFC 2822指定的表单日期——比如Fri, 15 May 2009 17:58:28 +0000,作为字符串。在Python 2.5中,有没有一种快速和/或标准的方法将其作为datetime对象来获取?我试图生成一个strtime格式字符串,但是+0000时区说明符混淆了解析器。
Fri, 15 May 2009 17:58:28 +0000
datetime
我想详细说明一下以前的答案。email.utils.parsedate和email.utils.parsedate_tz都返回元组,因为OP需要一个datetime.datetime对象,为了完整起见,我添加以下示例:
email.utils.parsedate
email.utils.parsedate_tz
datetime.datetime
from email.utils import parsedate from datetime import datetime import time t = parsedate('Sun, 14 Jul 2013 20:14:30 -0000') d1 = datetime.fromtimestamp(time.mktime(t))
或:
d2 = datetime.datetime(*t[:6])
注意d1和d2都是原始的datetime对象,没有存储时区信息。如果需要aware datetime对象,请检查tzinfodatetime()参数。
d1
d2
tzinfo
datetime()
或者可以使用dateutil模块
from email.utils import parsedate print parsedate('Fri, 15 May 2009 17:58:28 +0000')
Documentation。
问题是parsedate将忽略偏移量。
请改为:
from email.utils import parsedate_tz print parsedate_tz('Fri, 15 May 2009 17:58:28 +0700')
我想详细说明一下以前的答案。
email.utils.parsedate
和email.utils.parsedate_tz
都返回元组,因为OP需要一个datetime.datetime
对象,为了完整起见,我添加以下示例:或:
注意
d1
和d2
都是原始的datetime对象,没有存储时区信息。如果需要aware datetime对象,请检查tzinfo
datetime()
参数。或者可以使用dateutil模块
Documentation。
问题是parsedate将忽略偏移量。
请改为:
相关问题 更多 >
编程相关推荐