isodate
An ISO 8601 date/time/duration parser and formatter
Install
isodate on PyPI
pip
pip install isodateuv
uv add isodatepoetry
poetry add isodatePackage facts
| License | Copyright (c) 2021, Hugo van Kemenade and contributors Copyright (c) 2009-2018, Gerhard Weis and contributors Copyright (c) 2009, Gerhard Weis All rights reserved. Redistribution and use in source… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | dormant — 674 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: isodate-0.7.2-py3-none-any.whl
About isodate
from the package's own PyPI description — quoted content, verbatim
ISO 8601 date/time parser
.. image:: https://travis-ci.org/gweis/isodate.svg?branch=master :target: https://travis-ci.org/gweis/isodate :alt: Travis-CI .. image:: https://coveralls.io/repos/gweis/isodate/badge.svg?branch=master :target: https://coveralls.io/r/gweis/isodate?branch=master :alt: Coveralls .. image:: https://img.shields.io/pypi/v/isodate.svg :target: https://pypi.python.org/pypi/isodate/ :alt: Latest Version .. image:: https://img.shields.io/pypi/l/isodate.svg :target: https://pypi.python.org/pypi/isodate/ :alt: License
This module implements ISO 8601 date, time and duration parsing. The implementation follows ISO8601:2004 standard, and implements only date/time representations mentioned in the standard. If something is not mentioned there, then it is treated as non existent, and not as an allowed option.
For instance, ISO8601:2004 never mentions 2 digit years. So, it is not intended by this module to support 2 digit years. (while it may still be valid as ISO date, because it is not explicitly forbidden.) Another example is, when no time zone information is given for a time, then it should be interpreted...
Read as markdown · JSON record · Source repository · Homepage
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
Parses and formats ISO 8601 date, time, duration, and timezone strings into Python standard types like date, datetime, timedelta, and a custom Duration class for year/month precision.
Low friction: pure Python wheel with no runtime dependencies. Dormant maintenance (674 days since last release) but repository remains active and supported on Python 3.7–3.13.
BSD license (permissive): you may use, modify, and distribute isodate freely in proprietary or open-source projects provided you retain the copyright notice and disclaimer.
Usage
pip install isodate
from isodate import parse_date, parse_datetime, parse_duration
date_obj = parse_date('2024-10-08')
datetime_obj = parse_datetime('2024-10-08T12:30:00Z')
duration_obj = parse_duration('P1Y2M3DT4H5M6S')
Python >= 3.7 required
Verdict: Stable, lightweight ISO 8601 parser with zero dependencies and broad Python version support. No known vulnerabilities. Dormant maintenance is typical for a mature, feature-complete library; suitable for production use where ISO date/time parsing is needed.
Needs verification
- Whether the library's known parsing leniencies (mixed basic/extended format, incomplete dates) are acceptable for your use case
- Performance characteristics under high-volume parsing workloads
Similar packages
permissive · top 1,000 on PyPI
durationpypermissive · top 1,000 on PyPI
isodurationpermissive · top 1,000 on PyPI
arrowpermissive · top 1,000 on PyPI
humanizepermissive · top 1,000 on PyPI
python-dateutilpermissive · top 100 on PyPI
pycparserpermissive · top 100 on PyPI
tzlocalpermissive · top 1,000 on PyPI
pytzpermissive · top 100 on PyPI
parsedatetimepermissive · top 1,000 on PyPI