udatetime
Fast RFC3339 compliant date-time library
What it is and what it does
udatetime is a C-accelerated library for parsing, formatting, and working with RFC3339-compliant date-time strings in Python. It wraps Python's standard datetime class but optimizes the hot path—string parsing and formatting—through a native C implementation. All datetime objects it creates are timezone-aware with fixed-offset timezones (no daylight savings time).
The library is designed as a drop-in replacement for code already using datetime: it exposes familiar methods like from_string, to_string, now, utcnow, fromtimestamp, and utcfromtimestamp. It supports both Python 2 and Python 3 via a C implementation, and PyPy via a pure-Python fallback. The trade-off is a high installation barrier—you must have a C compiler and Python development headers available at build time, and it only runs on POSIX systems.
Use it for:
- Parse and serialize RFC3339 timestamps in high-throughput APIs or logging systems where datetime performance matters.
- Replace datetime in time-sensitive applications that handle many timestamp conversions.
- Work with fixed-offset timezones in systems that do not need DST handling and want guaranteed UTC or regional offset behavior.
- Build services that emit or consume RFC3339 date-times, common in REST APIs and JSON payloads.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
udatetime provides fast RFC3339-compliant date-time parsing, formatting, and manipulation for Python, offering faster instantiation and serialization than the standard datetime library.
Yes, if you have a POSIX system with a C compiler and Python dev headers, and your code is performance-sensitive around datetime parsing or formatting. The permissive Apache 2.0 license and performance gains make it a solid choice for high-throughput services. However, the dormant maintenance status (last commit 2024-06-11) and high build friction mean you should verify it works on your target Python version before committing. Not recommended for Windows or for projects that cannot tolerate a build-time C dependency.
Install
udatetime on PyPI
pip
pip install udatetimeuv
uv add udatetimepoetry
poetry add udatetimeInstalling udatetime
Before you install
High install friction: requires a C compiler and Python development headers (python-dev or python3-dev). The package is dormant—last commit was 2024-06-11, with no recent activity. No runtime dependencies, but the C extension build is a significant barrier on systems without a development toolchain.
License in practice
Apache 2.0 is permissive and imposes no restrictions on commercial or proprietary use. You may use, modify, and distribute udatetime freely provided you include a copy of the license and note any changes made.
Quickstart
import udatetime
# Parse RFC3339 string to datetime
dt = udatetime.from_string("2016-07-15T12:33:20.123000+02:00")
# Serialize datetime back to RFC3339 string
result = udatetime.to_string(dt)
print(result) # '2016-07-15T12:33:20.123000+02:00'
Requires a C compiler and Python development headers (python-dev or python3-dev on Debian/Ubuntu, python-devel or python3-devel on RHEL/CentOS). POSIX-compliant systems only; Windows support is not available.
Verify before relying
- Whether the package works reliably on modern Python versions (3.10+) despite classifiers only listing up to 3.6.
- Current status of Windows support, given the description states only POSIX systems are supported.
- Whether the C extension builds successfully on recent Python versions without modification.
Package facts
| License | Apache 2.0 (permissive) |
| Python support | not specified |
| Install friction | high — source build required |
| Runtime dependencies | none |
| Maintenance | dormant — 1,463 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 91,368/month — #13,517 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: udatetime-0.0.17-py2.7-linux-x86_64.egg; udatetime-0.0.17-py3.5-linux-x86_64.egg; udatetime-0.0.17-py3.9-linux-x86_64.egg; udatetime-0.0.17.tar.gz
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
DateTimeProvides a DateTime data type for working with…
unclear · top 5,000 on PyPI
strict-rfc3339Converts Unix timestamps to and from RFC3339…
copyleft · top 5,000 on PyPI
tonyg-rfc3339Parses and formats RFC 3339 date-time strings…
unclear · top 15,000 on PyPI
ciso8601Parses ISO 8601 and RFC 3339 date-time strings…
permissive · top 5,000 on PyPI
isodateParses and formats ISO 8601 date, time,…
permissive · top 1,000 on PyPI
rfc3339-validatorValidates whether a string conforms to the…
permissive · top 1,000 on PyPI
aniso8601Parses ISO 8601 date, time, datetime, duration,…
permissive · top 5,000 on PyPI
metomi-isodatetimeParses and manipulates ISO 8601 date-time…
copyleft · top 15,000 on PyPI
hightimeHightime provides drop-in replacements for…
permissive · top 15,000 on PyPI
pycdlibPyCdlib is a pure Python library for parsing,…
copyleft · top 5,000 on PyPI