Python——pyiso8601

时间:2022-11-18 03:52:03

  该模块不是Python内建的模块,为Python补充了 ISO 8601 解析——将常见的 ISO 8601 日期字符创转化为 Python 的 datetime 对象。

  安装

$ pip install iso8601

  使用

>>> import iso8601

  示例

>>> import iso8601
>>> iso8601.parse_date("2007-01-25T12:00:00Z")
datetime.datetime(2007, 1, 25, 12, 0, tzinfo=<iso8601.Utc>)
>>>

  格式

  你既可以解析完整的 日期 + 时间 模式的字符串,又可以仅仅解析包含 日期 的字符串, 两种情况都会返回 datetime 实例,但是返回的 时间 缺省为 0,返回的 日/月 缺省为 1。

  日期

  • YYYY-MM-DD
  • YYYYMMDD
  • YYYY-MM (day 默认为 1)
  • YYYY (month 和 day 都默认为1)

  时间

  • hh:mm:ss.nn
  • hhmmss.nn
  • hh:mm (second 默认为0)
  • hhmm (second 默认为0)
  • hh (minute 和 second都默认为0)

  时区

  • 缺省为UTC
  • Z (UTC)
  • +/-hh:mm
  • +/-hhmm
  • +/-hh

  与ISO 8601 的区别

  • 你可以使用空格(“ ”)而不一定用 “T” 来区分日期和时间
  • 10以下的日和月不在数字前面加“0”也能识别,比如(2 而不是 02)
  • 时区缺省为UTC

  

API

iso8601.parse_date(datestring, default_timezone=<iso8601.Utc>)

  将ISO 8601 格式的文本转化为Python datetime 对象。

  参数

  • datestring —— 要解析的日期字符串,其中也可以包含时区信息
  • default_timezone —— 时区信息,一个 datetime 的 tzinfo 实例,当参数 datestring 中没有包含时区信息时使用。如果设置为 None 则返回一个简单的 datetime 对象。

  返回值
  
一个 datetime.datetime 实例

  

异常

exception iso8601.ParseError

  当 iso8601.parse_date() 解析出现错误或无法构造 datetime 实例时抛出 ParseError