Chrono is a date and time library for Rust that provides timezone-aware handling of dates and times in the proleptic Gregorian calendar.
The library solves the problem of correctly manipulating dates and times by making timezone awareness a default behavior rather than an afterthought. The DateTime type is timezone-aware by default, with separate timezone-naive types available when needed. Operations that could produce invalid or ambiguous results return Option or MappedLocalTime rather than panicking or silently producing incorrect values. The tool supports configurable parsing and formatting using strftime-inspired syntax, can work with the operating system's local timezone, and is designed to be reasonably efficient in its operations.
Chrono suits projects that need reliable date and time handling without the complexity of managing timezone data in the binary itself. The library intentionally does not ship timezone data by default to keep binary sizes small; developers needing full timezone support should use the companion crate Chrono-TZ or tzfile. The tool works within defined constraints: it supports only the proleptic Gregorian calendar, handles dates within approximately 262,000 years of the common epoch, provides nanosecond accuracy for time values, and can represent leap seconds though full support for them is incomplete. The library offers granular feature control, allowing developers to enable only the functionality they need, from basic date operations to serialization support via serde or rkyv, and optional localization features.
The project maintains an explicitly tested minimum supported Rust version and may bump it in minor releases when necessary. Development activity shows consistent engagement with the codebase through regular updates and maintenance of multiple serialization backends.