【问题标题】:How to parse e.g. 2010-04-24T07:47:00.007+02:00 with Python strptime如何解析例如2010-04-24T07:47:00.007+02:00 与 Python strptime
【发布时间】:2010-10-15 22:46:56
【问题描述】:

有人知道如何使用 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)

【问题讨论】:

    标签: python date strptime rfc3339


    【解决方案1】:

    该日期采用 ISO 8601 格式,或更具体地说是 RFC 3339 格式。

    无法使用strptime 解析此类日期。有一个 Python issue 讨论了这个。

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

    如果您使用外部模块进行 XML 或 RSS 解析,则其中可能有一个例程来解析该日期。

    【讨论】:

      【解决方案2】:

      这是找到答案的好方法:使用strftime,构造一个格式字符串,它会发出你看到的内容。根据定义,该字符串将是使用strptime 解析时间所需的字符串。

      【讨论】:

        【解决方案3】:

        如果您尝试解析 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)
        

        【讨论】:

          【解决方案4】:

          这是标准的 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

          【讨论】:

          • “一个 XML 库”。哪一个?你是说 PyXML 吗?
          • 大多数 XML 库都包含用于解析 XML 日期时间的便利函数。 PyXML 恰好是我包含的示例。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-26
          • 2013-03-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多