Arrow is a Python library for creating, manipulating, formatting, and converting dates, times, and timestamps. It aims to be a human-friendly, timezone-aware alternative to working with Python’s built-in date and time modules, with features like parsing and formatting (including ISO 8601), timezone conversion, shifting by offsets, and humanized time output.
Project status
- Actively maintained: The upstream GitHub source shows a recent push on 2026-06-22, and the latest listed update is 1.4.0 (2025-10-24), suggesting ongoing work rather than dormancy.
- Apparent update cadence: Known update tags are sparse, with 1.3.0 (2023-09-30) to 1.4.0 (2025-10-24) (about 2 years), but there is follow-on activity after 1.4.0 (the 2026-06-22 push).
AI summary generated
Recent updates
1.4.0
Version 1.4.0 adds week_start support to floor and ceil (for week-based truncation), introduces FORMAT_RFC3339_STRICT, and expands locale coverage (including Macedonian in Latin script and Persian). The release also migrates timezone handling to ZoneInfo and updates CI tooling and dependencies.
BreakingFeatures1.3.0
Arrow 1.3.0 adds official Python 3.11 and 3.12 support, refreshes several locale tables, and improves parsing for timezone strings that include a UTC prefix. The release also modernizes the project packaging and documentation build setup (pyproject.toml, flit, ReadTheDocs config).
BreakingFeatures1.2.3
Version 1.2.3 primarily adds support for several new locales (Amharic, Armenian, Georgian, Laotian, Uzbek) and updates Danish locale strings, along with associated test coverage. The code diff also shows several non-release-note changes related to tooling configuration (pre-commit, lint) and minor implementation details in the core library.
Features1.2.2
Version 1.2.2 adds the Kazakh locale and extends dehumanize support to multiple additional locales, along with several locale wording fixes and expanded locale testing. Internally, the project updates its documentation PDF generation to use xelatex and splits requirements into separate files for base, docs, and tests, and tweaks linting/tooling configuration.
Features1.2.1
Version 1.2.1 adds support for quarter granularity in Arrow.humanize, along with new Sinhala and Urdu locales, and official Python 3.10 support. It also updates several existing locales (Azerbaijani, Hebrew, Serbian) and adds tests, including a change to raise ValueError when humanize is called with an empty granularity list.
BreakingFeatures1.2.0
Version 1.2.0 adds new locale support (including Albanian, Tamil, and Zulu) and extends parsing and humanization behavior, notably adding support for passing Decimal values into arrow.get(). It also improves locale dehumanization and parser validation for certain tokens.
Features1.1.1
Version 1.1.1 adds support for multiple new locales (Odia, Maltese, Serbian, Sami, Luxembourgish) and updates the Turkish locale. It also fixes two core behaviors: tzinfo handling in `arrow.get()` and correct truncation for `humanize()` when locale implementations override `_format_timeframe()`. Finally, it renames `requirements.txt` to `requirements-dev.txt` and updates CI/test plumbing to use the new file.
Features1.1.0
Version 1.1.0 adds a new `Arrow.dehumanize()` API for shifting datetimes based on human-readable relative time strings, and enhances `span('week')` with a configurable `week_start` parameter. It also standardizes locale handling to use ISO dash notation (for example `en-gb` instead of `en_gb`), and adds several new locales.
Features1.0.3
Version 1.0.3 updates internal code to better support running the project under `mypy --strict`, fixes a Swedish locale pluralization issue, and lowers the test coverage threshold. The code diff also shows additional test coverage for Swedish locale plural forms.
1.0.2
Version 1.0.2 is a small patch release that targets an OverflowError when running the library on 32-bit operating systems. The code change updates the internal MAX_TIMESTAMP fallback logic, and the release documentation also gets adjusted to match timestamp usage examples.