iso8601
Simple module to parse ISO 8601 dates
Decision gist · record as of 2026-08-14
Yes, if you need straightforward ISO 8601 parsing with zero dependencies and don't require advanced date manipulation. The package is stable, permissively licensed, and widely used (top 5000 on PyPI). However, consider Python 3.11+ built-in datetime.fromisoformat() first—it now handles most ISO 8601 cases natively. Install iso8601 only if you need the lenient parsing (space instead of T, missing leading zeros) or must support Python 3.7–3.10.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.7 or later (>=3.7,<4.0).
- Low install friction with no runtime dependencies.
- Aging maintenance status (last release 2023-10-03, last commit 2025-03-06) but repository remains active and untested against Python versions below 3.7.
License · maintenance · safety
MIT (permissive) — MIT license (permissive) means you can use, modify, and distribute this package freely in commercial and open-source projects with minimal restrictions.
last release 2023-10-03 (1046 days) · last repo commit 2025-03-06 · 35 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 12,689,190 downloads/mo, #1,311 on PyPI
Alternatives
Verify before relying
pip install iso8601
import iso8601
dt = iso8601.parse_date("2007-01-25T12:00:00Z")
print(dt) # datetime.datetime(2007, 1, 25, 12, 0, tzinfo=<iso8601.Utc>)- Whether the package handles all ISO 8601 edge cases or only the common forms mentioned in the description.
- Performance characteristics when parsing large volumes of date strings.
- Whether the aging maintenance status indicates sufficient stability or signals future compatibility concerns.
What it is and what it does
iso8601 is a lightweight, dependency-free parser that converts ISO 8601 formatted date strings into Python datetime objects. It handles the most common ISO 8601 formats—full timestamps with timezones, date-only strings, partial times—and applies sensible defaults (UTC timezone, day/month of 1) when components are omitted. The parser is permissive by design: it accepts space instead of T as a date-time separator, tolerates missing leading zeros in days and months, and lets you override the default timezone.
The package is intentionally minimal. It does one thing: take an ISO 8601 string and return a datetime. If you need richer date manipulation, timezone handling, or parsing of non-ISO formats, the description itself points toward arrow, pendulum, python-dateutil, or Python 3's built-in datetime.fromisoformat(). For straightforward ISO 8601 parsing in legacy codebases or when you want to avoid extra dependencies, iso8601 is a stable, proven choice.
Use it for
- Parse API response timestamps that come in ISO 8601 format into Python datetime objects for comparison or manipulation.
- Convert log entries with ISO 8601 timestamps into datetime objects for time-based filtering or analysis.
- Handle user-submitted date strings in ISO 8601 format from web forms or data imports.
- Work with database exports or JSON data that use ISO 8601 date representation.
- Normalize mixed date formats by accepting ISO 8601 strings and converting them to a consistent datetime representation.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need straightforward ISO 8601 parsing with zero dependencies and don't require advanced date manipulation.
The package is stable, permissively licensed, and widely used (top 5000 on PyPI). However, consider Python 3.11+ built-in datetime.fromisoformat() first—it now handles most ISO 8601 cases natively. Install iso8601 only if you need the lenient parsing (space instead of T, missing leading zeros) or must support Python 3.7–3.10.
Install
iso8601 on PyPI
Before you install
Low install friction with no runtime dependencies. Aging maintenance status (last release 2023-10-03, last commit 2025-03-06) but repository remains active and untested against Python versions below 3.7.
Requires Python 3.7 or later (>=3.7,<4.0).
License in practice
MIT license (permissive) means you can use, modify, and distribute this package freely in commercial and open-source projects with minimal restrictions.
Quickstart
pip install iso8601
import iso8601
dt = iso8601.parse_date("2007-01-25T12:00:00Z")
print(dt) # datetime.datetime(2007, 1, 25, 12, 0, tzinfo=<iso8601.Utc>)
Verify before relying
- Whether the package handles all ISO 8601 edge cases or only the common forms mentioned in the description.
- Performance characteristics when parsing large volumes of date strings.
- Whether the aging maintenance status indicates sufficient stability or signals future compatibility concerns.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.7,<4.0 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Aging 1,046 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 12,689,190 / month, #1,311 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9 |
Evidence: iso8601-2.1.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “iso 8601 date parsing”
- iso8601Parses ISO 8601 date strings (e.g. 2007-01-14T20:34:22+00:00) into…
- isodateParses and formats ISO 8601 date, time, duration, and timezone…
- metomi-isodatetimeParses and manipulates ISO 8601 date-time strings according to the…
Give your agent the search over MCP, or paste the wish link into any chat.
More Utilities packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Detects and normalizes text encoding from unknown or ambiguous sources, supporting all IANA character sets that Python's core library provides codecs for, with the ability to register custom codecs.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Pygments is a syntax highlighter that colorizes source code and text in over 500 languages and formats, outputting to HTML, LaTeX, RTF, SVG, images, or ANSI terminal sequences.
Install it if you need to display or transform source code.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
See also aniso8601 · arrow · ciso8601 · dateformat · isodate · metomi-isodatetime · parsedatetime · prefixdate · backports-datetime-fromisoformat · tonyg-rfc3339