该模块不是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