如何用Python strptime解析2010-04-24T07:47:00.007+02:00
有没有人知道怎么用Python的strptime方法解析标题中提到的格式?
我有一个类似这样的东西:
import datetime
date = datetime.datetime.strptime(entry.published.text, '%Y-%m-%dT%H:%M:%S.Z')
我搞不清楚这是什么样的时间格式。顺便说一下,我是Python的新手(我习惯用C#)。
更新
这是我根据下面的建议(回答)修改后的代码:
from dateutil.parser import *
from datetime import *
date = parse(entry.published.text)
4 个回答
0
如果你想解析RSS或Atom订阅源,可以使用Universal Feed Parser。这个工具支持很多种日期和时间格式。
>>> import feedparser # parse feed
>>> d = feedparser.parse("http://stackoverflow.com/feeds/question/3946689")
>>> t = d.entries[0].published_parsed # get date of the first entry as a time tuple
>>> import datetime
>>> datetime.datetime(*t[:6]) # convert time tuple to datetime object
datetime.datetime(2010, 10, 15, 22, 46, 56)
0
这里有个好办法来找到答案:使用 strftime
,构建一个格式字符串,这个字符串会输出你看到的内容。根据定义,这个字符串就是用来用 strptime
解析时间所需要的字符串。
5
这个日期是按照ISO 8601格式写的,具体来说是RFC 3339格式。
这种格式的日期不能用strptime
来解析。这里有一个Python的问题在讨论这个情况。
dateutil.parser.parse
可以处理各种各样的日期,包括你例子中的日期。
如果你在使用外部模块来解析XML或RSS,里面可能已经有处理这种日期的功能了。