iso8601

Simple module to parse ISO 8601 dates

MIT 25 个版本 Python >=3.7,<4.0
Michael Twomey <mick@twomeylee.name>
安装
pip install iso8601
poetry add iso8601
pipenv install iso8601
conda install iso8601
描述

Simple module to parse ISO 8601 dates

pip install iso8601

Documentation: https://pyiso8601.readthedocs.org/

PyPI: https://pypi.org/project/iso8601/

Source: https://github.com/micktwomey/pyiso8601

This module parses the most common forms of ISO 8601 date strings (e.g. 2007-01-14T20:34:22+00:00) into datetime objects.

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

See the LICENSE file for the license this package is released under.

If you want more full featured parsing look at:

Parsed Formats

You can parse full date + times, or just the date. In both cases a datetime instance is returned but with missing times defaulting to 0, and missing days / months defaulting to 1.

Dates

  • YYYY-MM-DD
  • YYYYMMDD
  • YYYY-MM (defaults to 1 for the day)
  • YYYY (defaults to 1 for month and day)

Times

  • hh:mm:ss.nn
  • hhmmss.nn
  • hh:mm (defaults to 0 for seconds)
  • hhmm (defaults to 0 for seconds)
  • hh (defaults to 0 for minutes and seconds)

Time Zones

  • Nothing, will use the default timezone given (which in turn defaults to UTC).
  • Z (UTC)
  • +/-hh:mm
  • +/-hhmm
  • +/-hh

Where it Differs From ISO 8601

Known differences from the ISO 8601 spec:

  • You can use a " " (space) instead of T for separating date from time.
  • Days and months without a leading 0 (2 vs 02) will be parsed.
  • If time zone information is omitted the default time zone given is used (which in turn defaults to UTC). Use a default of None to yield naive datetime instances.

References

Testing

  1. poetry install
  2. poetry run nox

Note that you need all the pythons installed to perform a tox run (see below). pyenv helps hugely, use pyenv install for the versions you need then use 'pyenv local version ...' to link them in (the tox-pyenv plugin will pick them up).

Alternatively, to test only with your current python:

  1. poetry install
  2. pytest

Releasing

  1. just prepare-release
  2. just do-release

Supported Python Versions

Tested against:

  • Python 3.7
  • Python 3.8
  • Python 3.9
  • Python 3.10
  • Python 3.11
  • Python 3.12
  • PyPy 3

Python 3 versions < 3.7 are untested but should work.

Changes

See CHANGELOG.md <https://github.com/micktwomey/pyiso8601/blob/main/CHANGELOG.md>_.

版本列表
2.1.0 2023-10-03
2.0.0 2023-06-09
1.1.0 2022-09-28
1.0.2 2021-11-23
1.0.1 2021-11-22
1.0.0 2021-11-07
1.0.0a1 2021-07-15
1.0.0a0 2021-07-15
0.1.16 2021-07-16
0.1.15 2021-07-16
0.1.14 2021-02-05
0.1.13 2020-09-11
0.1.12 2017-07-27
0.1.11 2015-11-03
0.1.10 2014-02-27
0.1.9 2014-02-26
0.1.8 2013-10-22
0.1.7 2013-10-19
0.1.6 2013-10-18
0.1.5 2013-10-17
0.1.4 2007-09-18
0.1.3 2007-08-28
0.1.2 2007-07-24
0.1.1 2007-03-30
0.1 2007-01-14