有没有人知道如何使用Pythons 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)
答案 0 :(得分:5)
该日期符合ISO 8601标准,或更具体地说是RFC 3339格式。
无法使用strptime
解析此类日期。有一个Python issue可以讨论这个问题。
dateutil.parser.parse
可以处理各种日期,包括您示例中的日期。
如果您使用外部模块进行XML或RSS解析,那么可能会有一个例程来解析该日期。
答案 1 :(得分:0)
这是找到答案的好方法:使用strftime
,构造一个格式字符串,它将发出你所看到的内容。根据定义,该字符串将是使用strptime
PARRE所需的字符串。
答案 2 :(得分:0)
如果您尝试解析RSS或Atom供稿,请使用Universal Feed Parser。它支持many date/time formats。
>>> 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)
答案 3 :(得分:-1)
这是标准的XML日期时间格式,ISO 8601.如果您已经在使用XML库,那么它们中的大多数都内置了日期时间解析器。xml.utils.iso8601
工作得相当好。
import xml.utils.iso8601
date = xml.utils.iso8601.parse(entry.published.text)
您可以在此处查看其他一些处理方法: http://wiki.python.org/moin/WorkingWithTime