Skip to main content

Simple module to parse ISO 8601 dates

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iso8601-2.1.0.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

iso8601-2.1.0-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file iso8601-2.1.0.tar.gz.

File metadata

  • Download URL: iso8601-2.1.0.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.10.11 Darwin/23.0.0

File hashes

Hashes for iso8601-2.1.0.tar.gz
Algorithm Hash digest
SHA256 6b1d3829ee8921c4301998c909f7829fa9ed3cbdac0d3b16af2d743aed1ba8df
MD5 6e33910eba87066b3be7fcf3d59d16b5
BLAKE2b-256 b9f3ef59cee614d5e0accf6fd0cbba025b93b272e626ca89fb70a3e9187c5d15

See more details on using hashes here.

File details

Details for the file iso8601-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: iso8601-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.10.11 Darwin/23.0.0

File hashes

Hashes for iso8601-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 aac4145c4dcb66ad8b648a02830f5e2ff6c24af20f4f482689be402db2429242
MD5 e3b1014d767f5178e4704b2f6b4e9562
BLAKE2b-256 6c0cf37b6a241f0759b7653ffa7213889d89ad49a2b76eb2ddf3b57b2738c347

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page