NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #100 most downloaded on crates.io
Date and time library for Rust
Last release 3 months ago
04 Jun 2026
Release timing varies
gaps range from 3 weeks to 8 months
Most releases are documented
notes for 41 of the last 60 stable releases
22 versions withdrawn
withdrawn after publishing
12 years old
95 releases · first in 2014
Padding modifiers %_?, %-? and %0? are implemented. They are glibc extensions which seem to be reasonably widespread (e.g. Ruby).
Padding modifiers %_?, %-? and %0? are implemented.
They are glibc extensions which seem to be reasonably widespread (e.g. Ruby).
Added %:z specifier and corresponding formatting items
which is essentially the same as %z but with a colon.
Added a new specifier %.f which precision adapts from the input.
This was added as a response to the UX problems in the original nanosecond specifier %f.
Numeric::Timestamp specifier (%s) was ignoring the time zone offset when provided.
Improved the documentation and associated tests for strftime.
NaiveDateTime +/- Duration or NaiveTime +/- Duration could have gone wrong when the Duration to be added is negative and has a fractional second part.
NaiveDateTime +/- Duration or NaiveTime +/- Duration could have gone wrong
when the Duration to be added is negative and has a fractional second part.
This was caused by an underflow in the conversion from Duration to the parts;
the lack of tests for this case allowed a bug. (#37)One column per quarter.
The optional dependency on rustc_serialize and relevant Rustc{En,De}codable implementations for supported types has been added. This is enabled by the
rustc_serialize and
relevant Rustc{En,De}codable implementations for supported types has been added.
This is enabled by the rustc-serialize Cargo feature. (#34)chrono::Duration reexport is changed to that of crates.io time crate.
This enables Rust 1.0 beta compatibility.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Clarified the meaning of Date and fixed unwanted conversion problem that only occurs with positive UTC offsets.
Date<Tz> and fixed unwanted conversion problem
that only occurs with positive UTC offsets. (#27)DateTime and Date is now Copy/Send when Tz::Offset is Copy/Send. The implementations for them were mistakenly omitted.
DateTime<Tz> and Date<Tz> is now Copy/Send when Tz::Offset is Copy/Send.
The implementations for them were mistakenly omitted. (#25)Local::from_utc_datetime didn't set a correct offset. (#26)Nothing published for this version
DelayedFormat no longer conveys a redundant lifetime.
DelayedFormat no longer conveys a redundant lifetime.…or from_timestamp*. The original names have been deprecated.
Offset is split into TimeZone (constructor) and Offset (storage) types.
You would normally see only the former, as the latter is mostly an implementation detail.
Most importantly, Local now can be used to directly construct timezone-aware values.
Some types (currently, UTC and FixedOffset) are both TimeZone and Offset,
but others aren't (e.g. Local is not what is being stored to each DateTime values).
LocalResult::map convenience method has been added.
TimeZone now allows a construction of DateTime values from UNIX timestamp,
via timestamp and timestamp_opt methods.
TimeZone now also has a method for parsing DateTime, namely datetime_from_str.
The following methods have been added to all date and time types:
checked_addchecked_subformat_with_itemsThe following methods have been added to all timezone-aware types:
timezonewith_timezonenaive_utcnaive_localparse_from_str method has been added to all naive types and DateTime<FixedOffset>.
All naive types and instances of DateTime with time zones UTC, Local and FixedOffset
implement the FromStr trait. They parse what std::fmt::Debug would print.
chrono::format has been greatly rewritten.
The formatting syntax parser is modular now, available at chrono::format::strftime.
The parser and resolution algorithm is also modular, the former is available at
chrono::format::parse while the latter is available at chrono::format::parsed.
Explicit support for RFC 2822 and 3339 syntaxes is landed.
There is a minor formatting difference with atypical values, e.g. for years not between 1 BCE and 9999 CE.
Most uses of Offset are converted to TimeZone.
In fact, all user-facing code is expected to be Offset-free.
[Naive]DateTime::*num_seconds_from_unix_epoch* methods have been renamed to
simply timestamp or from_timestamp*. The original names have been deprecated.
Time has been removed. This also prompts a related set of methods in TimeZone.
This is in principle possible, but in practice has seen a little use
because it can only be meaningfully constructed via an existing DateTime value.
This made many operations to Time unintuitive or ambiguous,
so we simply let it go.
In the case that Time is really required, one can use a simpler NaiveTime.
NaiveTime and NaiveDate can be freely combined and split,
and TimeZone::from_{local,utc}_datetime can be used to convert from/to the local time.
with_offset method has been removed. Use with_timezone method instead.
(This is not deprecated since it is an integral part of offset reform.)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Added a missing std::String impl for Local.
std::fmt::String impl for Local.Most types now implement both std::Show and std::String, with the former used for the stricter output and the latter used for more casual output.
std::fmt::Show and std::fmt::String,
with the former used for the stricter output and the latter used for more casual output.Offset::name has been replaced by a std::fmt::String implementation to Offset.Duration + T no longer works due to the updated impl reachability rules. Use T + Duration as a workaround.
Duration + T no longer works due to the updated impl reachability rules.
Use T + Duration as a workaround.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fixed a bug that Date::and_* methods with an offset that can change the date are off by one day.
Date::and_* methods with an offset that can change the date are
off by one day.{Date,Time,DateTime}::with_offset methods have been added.
{Date,Time,DateTime}::with_offset methods have been added.
LocalResult now implements a common set of traits.
LocalResult::and_* methods have been added.
They are useful for safely chaining LocalResult<Date<Off>> methods
to make LocalResult<DateTime<Off>>.
Offset::name now returns SendStr.
{Date,Time} - Duration overloadings are now allowed.
Duration + Date overloading is now allowed.
Duration + Date overloading is now allowed.num dependency.Nothing published for this version
The initial version that was available to crates.io.
The initial version that was available to crates.io.
Your coding agent can read these notes before it upgrades. Set up the MCP server →