有谁知道如何使用Pythons Strptime方法来解析标题中所述的格式?

我有类似的东西:

import datetime    
date = datetime.datetime.strptime(entry.published.text, '%Y-%m-%dT%H:%M:%S.Z')

我似乎无法弄清楚这是什么样的TimeFormat。顺便说一句,我是Python语言的新手(我曾经习惯C#)。

更新

这就是我根据下面的建议(答案)更改代码的方式:

from dateutil.parser import *
from datetime import *
date = parse(entry.published.text)
有帮助吗?

解决方案

该日期在ISO 8601中,或更具体地 RFC 3339, , 格式。

这样的日期不能解析 strptime. 。有个 Python问题 讨论了这一点。

dateutil.parser.parse 可以处理各种日期,包括示例中的日期。

如果您将外部模块用于XML或RSS解析,则可能有一个例程可以解析该日期。

其他提示

这是找到答案的好方法:使用 strftime, ,构建一个将散发出您看到的格式字符串。根据定义,该字符串将是用来分析时间的字符串 strptime.

如果您想解析RSS或原子供稿,请使用 通用饲料解析器. 。它支持 许多日期/时间格式.

>>> 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)

这是标准的XML DateTime格式,ISO8601。如果您已经在使用XML库,则大多数都在内置dateTime Parsers。 xml.utils.iso8601 效果很好。

import xml.utils.iso8601
date = xml.utils.iso8601.parse(entry.published.text)

您可以在这里查看其他许多方法来处理:http://wiki.python.org/moin/workingwithtime

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top