chrono
Date and time library for Rust
0.4.45
752M downloads/mo
#100 most downloaded on crates.io
chronotope/chrono
What this package is like to depend on
Last release 2 months ago
04 Jun 2026
Release timing varies
gaps range from 3 weeks to 8 months
Most releases are documented
notes for 45 of 71 stable releases
22 versions withdrawn
withdrawn after publishing
12 years old
95 releases · first in 2014
4 releases in the last 12 months
see the full history below
Release timeline
95 releases · Nov 2014 to Jun 2026Releases
latest 60 of 95-
0.4.4504 Jun 2026Release notes
Open source →What's Changed
- fix(tz): reject TZ offset hour of 24 to avoid FixedOffset overflow by @SAY-5 in #1787
- tz_data: fix tzdata locations on Android by @caruschalalamove in #1789
-
0.4.4423 Feb 2026Release notes
Open source →What's Changed
- docs: match MSRV with
Cargo.tomlcontents by @coryan in #1772 - Add track_caller to non-deprecated functions by @svix-jplatte in #1774
- docs: match MSRV with
-
0.4.4314 Jan 2026Release notes
Open source →What's Changed
- Install extra components for lint workflow by @djc in #1741
- Upgrade windows-bindgen to 0.64 by @djc in #1742
- Improve windows-bindgen setup by @djc in #1744
- Drop stabilized feature doc_auto_cfg by @djc in #1745
- Faster RFC 3339 parsing by @djc in #1748
- Update windows-bindgen requirement from 0.64 to 0.65 by @dependabot[bot] in #1751
- add
NaiveDate::abs_diffby @Kinrany in #1752 - Add feature gated defmt support. by @pebender in #1747
- Drop deny lints, eager Debug impls are a mixed blessing by @djc in #1753
- chore: minor improvement for docs by @spuradage in #1756
- Added doctest for the NaiveDate years_since function by @LucasBou in #1755
- Prepare 0.4.43 by @djc in #1765
- Update copyright year to 2026 in LICENSE.txt by @taozui472 in #1767
-
0.4.4208 Sep 2025Release notes
Open source →What's Changed
- Add fuzzer for DateTime::parse_from_str by @tyler92 in #1700
- Fix wrong amount of micro/milliseconds by @nmlt in #1703
- Add warning about MappedLocalTime and wasm by @lutzky in #1702
- Fix incorrect parsing of fixed-length second fractions by @chris-leach in #1705
- Fix cfgs for
wasm32-linuxsupport by @arjunr2 in #1707 - Fix OpenHarmony's
tzdataparsing by @ldm0 in #1679 - Convert NaiveDate to/from days since unix epoch by @findepi in #1715
- Add
?Sizedbound to related methods ofDelayedFormat::write_toby @Huliiiiii in #1721 - Add
from_timestamp_secsmethod toDateTimeby @jasonaowen in #1719 - Migrate to core::error::Error by @benbrittain in #1704
- Upgrade to windows-bindgen 0.63 by @djc in #1730
- strftime: simplify error handling by @djc in #1731
-
0.4.4129 Apr 2025Release notes
Open source →What's Changed
- Add
subsec_microsandsubsec_millismethods toTimeDeltaby @ggoetz in #1668 - Deprecate
NaiveDateTime::UNIX_EPOCHby @robertbastian in #1670 - Implement
as_seconds_f32andas_seconds_f64forTimeDeltaby @ggoetz in #1671 - chore: fix some comments by @jimmycathy in #1677
- Add
num_days_in_monthmethod toDateliketrait by @aslilac in #1673 - add
WeekdaySet, a collection ofWeekdaythat isCopyby @Kinrany in #1676 - WeekdaySet tweaks by @djc in #1680
- Upgrade to windows-bindgen 0.61 by @djc in #1682
- Implemented a consistent Eq trait for NaiveWeek by @Splashling1789 in #1687
- TimeZone::from_posix_tz: Treat empty TZ variable as UTC by @drinkcat in #1691
- Add support for lossy format strings by @Qelxiros in #1693
- Add
-
0.4.4026 Feb 2025Release notes
Open source →What's Changed
- Add Month::num_days() by @djc in #1645
- Update Windows dependencies by @kennykerr in #1646
- Feature/round_up method on DurationRound trait by @MagnumTrader in #1651
- Expose
write_toforDelayedFormatby @tugtugtug in #1654 - Update LICENSE.txt by @maximevtush in #1656
- docs: fix minor typo by @samfolo in #1659
- Use NaiveDateTime for internal tz_info methods. by @AVee in #1658
- Upgrade to windows-bindgen 0.60 by @djc in #1665
- Add quarter (%q) date string specifier by @drinkcat in #1666
-
0.4.3909 Dec 2024Release notes
Open source →What's Changed
- #1577: Changed years_since documentation to match its implementation by @Taxalo in #1578
- Remove obsolete weird feature guard by @djc in #1582
- Fix format::strftime docs link by @frederikhors in #1581
- Fix micros (optional) limit in and_hms_micro_opt by @qrilka in #1584
- Update windows-bindgen requirement from 0.56 to 0.57 by @dependabot in #1589
- native/date: Improve DelayedFormat doc re Panics by @behnam-oneschema in #1590
- Fix typo in rustdoc of
from_timestamp_nanos()by @sgoll in #1591 - Update windows-bindgen requirement from 0.57 to 0.58 by @dependabot in #1594
- docs: document century cutoff for %y by @MarcoGorelli in #1598
- Checked
NaiveWeekmethods by @bragov4ik in #1600 - Impl serde::Serialize and serde::Deserialize for TimeDelta by @Awpteamoose in #1599
- Derive
PartialEq,Eq,Hash,CopyandCloneonNaiveWeekby @DSeeLP in #1618 - Support ohos tzdata since ver.oh35 by @MirageLyu in #1613
- Use Formatter::pad (instead of write_str) for Weekdays by @horazont in #1621
- Fix typos by @szepeviktor in #1623
- Fix comment. by @khuey in #1624
- chore: add
#[inline]tonum_daysby @CommanderStorm in #1627 - fix typo by @futreall in #1633
- Update mod.rs by @donatik27 in #1638
-
0.4.3815 Apr 2024Release notes
Open source →This release bring a ca. 20% improvement to the performance of the formatting code, and a convenient
days_sincemethod for theWeekdaytype.Chrono 0.4.38 also removes the long deprecated
rustc-serializefeature. Support forrustc-serializewill be soft-destabilized in the next Rust edition. Removing the feature will not break existing users of the feature; Cargo will just not update dependents that rely on it to newer versions of chrono.In chrono 0.4.36 we made an accidental breaking change by switching to
derive(Copy)forDateTimeinstead of a manual implementation. It is reverted in this release.Removals
- Remove
rustc-serializefeature (#1548, thanks @workingjubilee)
Additions
- Add
Weekday::days_since(#1249, based on #216 by @clarfonthey) - Add
TimeDelta::checked_mulandTimeDelta::checked_div(#1565, thanks @Zomtir)
Fixes
- Return error when rounding with a zero duration (#1474, thanks @Dav1dde)
- Manually implement
CopyforDateTimeif offset isCopy(#1573)
Internal
- Inline
test_encodable_jsonandtest_decodable_jsonfunctions (#1550) - CI: Reduce combinations in
cargo hack check(#1553) - Refactor formatting code (#1335)
- Optimize number formatting (#1558)
- Only package files needed for building and testing (#1554)
Thanks to all contributors on behalf of the chrono team, @djc and @pitdicker!
- Remove
-
0.4.3727 Mar 2024Nothing published for this version
-
0.4.3626 Mar 2024 withdrawnNothing published for this version
-
0.4.3506 Mar 2024Nothing published for this version
-
0.4.3411 Feb 2024Nothing published for this version
-
0.4.3325 Jan 2024Nothing published for this version
-
0.4.3222 Jan 2024Release notes
Open source →This tag was signed with the committer’s verified signature .
djc Dirkjan Ochtman
SSH Key Fingerprint: 37smfZ/b9hCzt4lr8r1baBBAPt9mNWXkOPDefColTWI Verified Learn about vigilant mode .
bf70419
In this release we shipped part of the effort to reduce the number of methods that could unexpectedly panic, notably for the DateTime and Duration types.
Chrono internally stores the value of a DateTime in UTC, and transparently converts it to the local value as required. For example adding a second to a DateTime needs to be done in UTC to get the correct result, but adding a day needs to be done in local time to be correct. What happens when the value is near the edge of the representable range, and the implicit conversions pushes it beyond the representable range? Many methods could panic on such inputs, including formatting the value for Debug output.
In chrono 0.4.32 the range of NaiveDate , NaiveDateTime and DateTime is made slightly smaller. This allows us to always do the implicit conversion, and in many cases return the expected result. Specifically the range is now from January 1, -262144 until December 31, 262143, one year less on both sides than before. We expect this may trip up tests if you hardcoded the MIN and MAX dates.
Duration had a similar issue. The range of this type was pretty arbitrary picked to match the range of an i64 in milliseconds. Negating an i64::MIN pushes a value out of range, and in the same way negating Duration::MIN could push it out of our defined range and cause a panic. This turns out to be somewhat common and hidden behind many layers of abstraction. We adjusted the type to have a minimum value of -Duration::MAX instead and prevent the panic case.
Other highlights:
-
Duration gained new fallible initialization methods.
-
Better support for rkyv .
-
Most methods on NaiveDateTime are now const.
-
We had to bump our MSRV to 1.61 to keep building with our dependencies. This will also allow us to make more methods on DateTime const in a future release.
Complete list of changes:
Fixes
-
Fix panic in TimeZone::from_local_datetime ( #1071 )
-
Fix out of range panics in DateTime getters and setters ( #1317 , #1329 )
Additions
-
Add NaiveDateTime::checked_(add|sub)_offset ( #1313 )
-
Add DateTime::to_utc ( #1325 )
-
Derive Default for Duration ( #1327 )
-
Add Duration::subsec_nanos ( #1327 )
-
Add try_* builders to Duration ( #1327 )
-
Implement AddAssign and SubAssign for Duration ( #1327 )
-
Make methods on NaiveDateTime const where possible ( #1286 )
-
Split clock feature into clock and now ( #1343 , thanks @mmastrac )
-
Add From<NaiveDate> for NaiveDateTime ( #1355 , thanks @dcechano )
-
Add NaiveDateTime::from_timestamp_nanos ( #1357 , thanks @Ali-Mirghasemi )
-
Add Months::num_months() and num_years() ( #1373 , thanks @danwilliams )
-
Add DateTime<Utc>::from_timestamp_millis ( #1374 , thanks @xmakro )
Changes
-
Fix panic in Duration::MIN.abs() (adjust Duration::MIN by 1 millisecond) ( #1334 )
-
Bump MSRV to 1.61 ( #1347 )
-
Update windows-targets requirement from 0.48 to 0.52 ( #1360 )
-
Update windows-bindgen to 0.52 ( #1379 )
Deprecations
- Deprecate standalone format functions ( #1306 )
Documentation
-
Improve doc comment and tests for timestamp_nanos_opt ( #1299 , thanks @mlegner )
-
Switch to doc_auto_cfg ( #1305 , #1326 )
-
Document panics in Add / Sub impls and use expect ( #1316 )
-
Improve types listed in top-level documentation ( #1274 )
-
Improve deprecation note of TimeZone::datetime_from_str ( #1342 , thanks @tmccombs )
-
Fix typos in Datelike impl for DateTime ( #1376 , thanks @ElectrifyPro )
Rkyv support
-
Export Archived* types in rkyv module ( #1304 )
-
Duplicate derives on Archived* types ( #1271 , thanks @Awpteamoose )
-
Archive derive of PartialEq for rkyv ( #959 , thanks @mkatychev )
-
Expose rkyv features as features for chrono users ( #1368 , thanks @gz )
Changes to unstable features
-
Don't let unstable-locales imply the alloc feature ( #1307 )
-
Remove format::{format_localized, format_item_localized} ( #1311 )
-
Inline write_rfc2822_inner , don't localize ( #1322 )
Internal
-
Add benchmark for DateTime::with_* ( #1309 )
-
Fix *_DAYS_FROM_YEAR_0 calculation ( #1312 )
-
Add NaiveTime::overflowing_(add|sub)_offset ( #1310 )
-
Rewrite DateTime::overflowing_(add|sub)_offset ( #1069 )
-
Tests calling date command set env LC_ALL ( #1315 , thanks @jtmoon79 )
-
Update deny.toml ( #1320 )
-
Bump actions/setup-node from 3 to 4 ( #1346 )
-
test.yml remove errant with: node-version ( #1352 , thanks @jtmoon79 )
-
CI Linting: Fix missing sources checkout in toml job ( #1371 , thanks @gibbz00 )
-
Silence clippy lint for test code with Rust 1.74.0 ( #1362 )
Thanks to all contributors on behalf of the chrono team, @djc and @pitdicker !
Contributors
gz, djc, and 13 other contributors
-
-
0.4.3115 Sep 2023Nothing published for this version
-
0.4.3007 Sep 2023Nothing published for this version
-
0.4.2905 Sep 2023Nothing published for this version
-
0.4.2830 Aug 2023Nothing published for this version
-
0.4.2729 Aug 2023Nothing published for this version
-
0.4.2630 May 2023Nothing published for this version
-
0.4.2529 May 2023Nothing published for this version
-
0.4.2412 Mar 2023Nothing published for this version
-
0.4.2312 Nov 2022Nothing published for this version
-
0.4.2213 Aug 2022Nothing published for this version
-
0.4.2109 Aug 2022Nothing published for this version
-
0.4.2004 Aug 2022Nothing published for this version
-
0.4.20-rc.126 Jul 2022 pre-releaseNothing published for this version
-
0.4.20-beta.125 Jul 2022 pre-release -
0.4.1930 Sep 2020 -
0.4.1826 Sep 2020 -
0.4.1726 Sep 2020Release notes
Open source →- Fix a name resolution error in wasm-bindgen code introduced by removing the dependency on time v0.1
-
0.4.1625 Sep 2020Release notes
Open source →Features
-
Add %Z specifier to the
FromStr, similar to the glibc strptime (does not set the offset from the timezone name) -
Drop the dependency on time v0.1, which is deprecated, unless the
oldtimefeature is active. This feature is active by default in v0.4.16 for backwards compatibility, but will likely be removed in v0.5. Code that importstime::Durationshould be switched to importchrono::Durationinstead to avoid breakage.
-
-
0.4.1514 Aug 2020Release notes
Open source →Fixes
- Correct usage of vec in specific feature combinations (@quodlibetor)
-
0.4.1407 Aug 2020 withdrawnRelease notes
Open source →Features
- Add day and week iterators for
NaiveDate(@gnzlbg & @robyoung) - Add a
Monthenum (@hhamana) - Add
locales. All format functions can now use locales, see the documentation for theunstable-localesfeature. - Fix
Local.from_local_datetimemethod for wasm
Improvements
- Added MIN and MAX values for
NaiveTime,NaiveDateTimeandDateTime<Utc>.
- Add day and week iterators for
-
0.4.1305 Jul 2020Release notes
Open source →Features
- Add
DurationRoundtrait that allows rounding and truncating byDuration(@robyoung)
Internal Improvements
- Code improvements to impl
Fromforjs_sysin wasm to reuse code (@schrieveslaach)
- Add
-
0.4.1201 Jul 2020Release notes
Open source →New Methods and impls
Duration::absto ensure that a duration is just a magnitude (#418 @abreis).
Compatibility improvements
- impl
Fromforjs_sysin wasm (#424 @schrieveslaach) - Bump required version of
timefor redox support.
Bugfixes
- serde modules do a better job with
Optiontypes (#417 @mwkroening and #429 @fx-kirin) - Use js runtime when using wasmbind to get the local offset (#412 @quodlibetor)
Internal Improvements
- Migrate to github actions from travis-ci, make the overall CI experience more comprehensible, significantly faster and more correct (#439 @quodlibetor)
-
0.4.1107 Mar 2020Release notes
Open source →Improvements
- Support a space or
TinFromStrforDateTime<Tz>, meaning that e.g.dt.to_string().parse::<DateTime<Utc>>()now correctly works on round-trip. (@quodlibetor in #378) - Support "negative UTC" in
parse_from_rfc2822(@quodlibetor #368 reported in #102) - Support comparisons of DateTimes with different timezones (@dlalic in #375)
- Many documentation improvements
Bitrot and external integration fixes
- Don't use wasmbind on wasi (@coolreader18 #365)
- Avoid deprecation warnings for
Error::description(@AnderEnder and @quodlibetor #376)
Internal improvements
- Use Criterion for benchmarks (@quodlibetor)
- Support a space or
-
0.4.1024 Nov 2019Release notes
Open source →Compatibility notes
- Putting some functionality behind an
allocfeature to improve no-std support (in #341) means that if you were relying on chrono withno-default-featuresand using any of the functions that require alloc support (i.e. any of the string-generating functions liketo_rfc3339) you will need to add theallocfeature in your Cargo.toml.
Improvements
DateTime::parse_from_stris more than 2x faster in some cases. (@michalsrb #358)- Significant improvements to no-std and alloc support (This should also make many format/serialization operations induce zero unnecessary allocations) (@CryZe #341)
Features
- Functions that were accepting
IteratorofItems (for exampleformat_with_items) now acceptIteratorofBorrow<Item>, so one can use values or references. (@michalsrb #358) - Add built-in support for structs with nested
Option<Datetime>etc fields (@manifest #302)
Internal/doc improvements
- Use markdown footnotes on the
strftimedocs page (@qudlibetor #359) - Migrate from
try!->?(question mark) because it is now emitting deprecation warnings and has been stable since rustc 1.13.0 - Deny dead code
- Putting some functionality behind an
-
0.4.904 Sep 2019Release notes
Open source →Fixes
- Make Datetime arithmetic adjust their offsets after discovering their new timestamps (@quodlibetor #337)
- Put wasm-bindgen related code and dependencies behind a
wasmbindfeature gate. (@quodlibetor #335)
-
0.4.831 Aug 2019Release notes
Open source →Fixes
- Add '0' to single-digit days in rfc2822 date format (@wyhaya #323)
- Correctly pad DelayedFormat (@SamokhinIlya #320)
Features
Release notes
Open source →Fixes
- Add '0' to single-digit days in rfc2822 date format (@wyhaya #323)
- Correctly pad DelayedFormat (@SamokhinIlya #320)
Features
- Support
wasm-unknown-unknownvia wasm-bindgen (in addition to emscripten/wasm-unknown-emscripten). (finished by @evq in #331, initial work by @jjpe #287)
-
0.4.725 Jun 2019Release notes
Open source →Fixes
- Disable libc default features so that CI continues to work on rust 1.13
- Fix panic on negative inputs to timestamp_millis (@cmars #292)
- Make
LocalResultCopy/Eq/Hash
Features
- Add
std::convert::Fromconversions between the different timezone formats (@mqudsi #271) - Add
timestamp_nanosmethods (@jean-airoldie #308) - Documentation improvements
-
0.4.625 Aug 2018Release notes
Open source →Maintenance
- Doc improvements -- improve README CI verification, external links
- winapi upgrade to 0.3
-
0.4.528 Jul 2018Release notes
Open source →Features
- Added several more serde deserialization helpers (@novacrazy #258)
- Enabled all features on the playground (@davidtwco #267)
- Derive
HashonFixedOffset(@LuoZijun #254) - Improved docs (@storyfeet #261, @quodlibetor #252)
-
0.4.423 Jun 2018Release notes
Open source →Features
- Added support for parsing nanoseconds without the leading dot (@emschwartz #251)
-
0.4.311 Jun 2018Release notes
Open source →Features
- Added methods to DateTime/NaiveDateTime to present the stored value as a number of nanoseconds since the UNIX epoch (@harkonenbade #247)
- Added a serde serialise/deserialise module for nanosecond timestamps. (@harkonenbade #247)
- Added "Permissive" timezone parsing which allows a numeric timezone to be specified without minutes. (@quodlibetor #242)
-
0.4.207 Apr 2018Release notes
Open source →Deprecations
- More strongly deprecate RustcSerialize: remove it from documentation unless the feature is enabled, issue a deprecation warning if the rustc-serialize feature is enabled (@quodlibetor #174)
Features
- Move all uses of the system clock behind a
clockfeature, for use in environments where we don't have access to the current time. (@jethrogb #236) - Implement subtraction of two
Dates,Times, orDateTimes, returning aDuration(@tobz1000 #237)
-
0.4.128 Mar 2018Release notes
Open source →Bug Fixes
- Allow parsing timestamps with subsecond precision (@jonasbb)
- RFC2822 allows times to not include the second (@upsuper)
Features
- New
timestamp_millismethod onDateTimeandNaiveDateTimethat returns number of milliseconds since the epoch. (@quodlibetor) - Support exact decimal width on subsecond display for RFC3339 via a new
to_rfc3339_optsmethod onDateTime(@dekellum) - Use no_std-compatible num dependencies (@cuviper)
- Add
SubsecRoundtrait that allows rounding to the nearest second (@dekellum)
Code Hygiene and Docs
- Docs! (@alatiera @kosta @quodlibetor @kennytm)
- Run clippy and various fixes (@quodlibetor)
-
0.4.021 Jun 2017Release notes
Open source →This was originally planned as a minor release but was pushed to a major release due to the compatibility concern raised.
Added
-
IsoWeekhas been added for the ISO week without time zone. -
The
+=and-=operators againsttime::Durationare now supported forNaiveDate,NaiveTimeandNaiveDateTime. (#99)(Note that this does not invalidate the eventual deprecation of
time::Duration.) -
SystemTimeandDateTime<Tz>types can be now converted to each other viaFrom. Due to the obvious lack of time zone information inSystemTime, the forward direction is limited toDateTime<Utc>andDateTime<Local>only.
Changed
-
Intermediate implementation modules have been flattened (#161), and
UTChas been renamed toUtcin accordance with the current convention (#148).The full list of changes is as follows:
Before After chrono::date::Datechrono::Datechrono::date::MINchrono::MIN_DATEchrono::date::MAXchrono::MAX_DATEchrono::datetime::DateTimechrono::DateTimechrono::naive::time::NaiveTimechrono::naive::NaiveTimechrono::naive::date::NaiveDatechrono::naive::NaiveDatechrono::naive::date::MINchrono::naive::MIN_DATEchrono::naive::date::MAXchrono::naive::MAX_DATEchrono::naive::datetime::NaiveDateTimechrono::naive::NaiveDateTimechrono::offset::utc::UTCchrono::offset::Utcchrono::offset::fixed::FixedOffsetchrono::offset::FixedOffsetchrono::offset::local::Localchrono::offset::Localchrono::format::parsed::Parsedchrono::format::ParsedWith an exception of
Utc, this change does not affect any direct usage ofchrono::*orchrono::prelude::*types. -
Datelike::isoweekdateis replaced byDatelike::iso_weekwhich only returns the ISO week.The original method used to return a tuple of year number, week number and day of the week, but this duplicated the
Datelike::weekdaymethod and it had been hard to deal with the raw year and week number for the ISO week date. This change isolates any logic and API for the week date into a separate type. -
NaiveDateTimeandDateTimecan now be deserialized from an integral UNIX timestamp. (#125)This turns out to be very common input for web-related usages. The existing string representation is still supported as well.
-
chrono::serdeandchrono::naive::serdemodules have been added for the serialization utilities. (#125)Currently they contain the
ts_secondsmodules that can be used to serializeNaiveDateTimeandDateTimevalues into an integral UNIX timestamp. This can be combined with Serde's[de]serialize_withattributes to fully support the (de)serialization to/from the timestamp.For rustc-serialize, there are separate
chrono::TsSecondsandchrono::naive::TsSecondstypes that are newtype wrappers implementing different (de)serialization logics. This is a suboptimal API, however, and it is strongly recommended to migrate to Serde.
Fixed
-
The major version was made to fix the broken Serde dependency issues. (#146, #156, #158, #159)
The original intention to technically break the dependency was to facilitate the use of Serde 1.0 at the expense of temporary breakage. Whether this was appropriate or not is quite debatable, but it became clear that there are several high-profile crates requiring Serde 0.9 and it is not feasible to force them to use Serde 1.0 anyway.
To the end, the new major release was made with some known lower-priority breaking changes. 0.3.1 is now yanked and any remaining 0.3 users can safely roll back to 0.3.0.
-
Various documentation fixes and goodies. (#92, #131, #136)
-
-
0.3.101 May 2017 withdrawnRelease notes
Open source →Added
-
Weekdaynow implementsFromStr,SerializeandDeserialize. (#113)The syntax is identical to
%A, i.e. either the shortest or the longest form of English names.
Changed
-
Serde 1.0 is now supported. (#142)
This is technically a breaking change because Serde 0.9 and 1.0 are not compatible, but this time we decided not to issue a minor version because we have already seen Serde 0.8 and 0.9 compatibility problems even after 0.3.0 and a new minor version turned out to be not very helpful for this kind of issues.
Fixed
- Fixed a bug that the leap second can be mapped wrongly in the local time zone. Only occurs when the local time zone is behind UTC. (#130)
-
-
0.3.006 Feb 2017Release notes
Open source →The project has moved to the Chronotope organization.
Added
-
chrono::preludemodule has been added. All other glob imports are now discouraged. -
FixedOffsetcan be added to or subtracted from any timelike types.FixedOffset::local_minus_utcandFixedOffset::utc_minus_localmethods have been added. Note that the oldOffset::local_minus_utcmethod is gone; see below.
-
Serde support for non-self-describing formats like Bincode is added. (#89)
-
Added
Item::Owned{Literal,Space}variants for owned formatting items. (#76) -
Formatting items and the
Parsedtype have been slightly adjusted so that they can be internally extended without breaking any compatibility. -
Weekdayis nowHashable. (#109) -
ParseErrornow implementsEqas well asPartialEq. (#114) -
More documentation improvements. (#101, #108, #112)
Changed
-
Chrono now only supports Rust 1.13.0 or later (previously: Rust 1.8.0 or later).
-
Serde 0.9 is now supported. Due to the API difference, support for 0.8 or older is discontinued. (#122)
-
Rustc-serialize implementations are now on par with corresponding Serde implementations. They both standardize on the
std::fmt::Debugtextual output.This is a silent breaking change (hopefully the last though). You should be prepared for the format change if you depended on rustc-serialize.
-
Offset::local_minus_utcis nowOffset::fix, and returnsFixedOffsetinstead of a duration.This makes every time zone operation operate within a bias less than one day, and vastly simplifies many logics.
-
chrono::format::formatnow receivesFixedOffsetinstead oftime::Duration. -
The following methods and implementations have been renamed and older names have been removed. The older names will be reused for the same methods with
std::time::Durationin the future.-
checked_*→checked_*_signedinDate,DateTime,NaiveDateandNaiveDateTimetypes -
overflowing_*→overflowing_*_signedin theNaiveTimetype -
All subtraction implementations between two time instants have been moved to
signed_duration_since, following the naming instd::time.
-
Fixed
- Fixed a panic when the
Localoffset receives a leap second. (#123)
Removed
-
Rustc-serialize support for
Date<Tz>types and all offset types has been dropped.These implementations were automatically derived and never had been in a good shape. Moreover there are no corresponding Serde implementations, limiting their usefulness. In the future they may be revived with more complete implementations.
-
The following method aliases deprecated in the 0.2 branch have been removed.
DateTime::num_seconds_from_unix_epoch(→DateTime::timestamp)NaiveDateTime::from_num_seconds_from_unix_epoch(→NaiveDateTime::from_timestamp)NaiveDateTime::from_num_seconds_from_unix_epoch_opt(→NaiveDateTime::from_timestamp_opt)NaiveDateTime::num_seconds_unix_epoch(→NaiveDateTime::timestamp)
-
Formatting items are no longer
Copy, except forchrono::format::Pad. -
chrono::offset::add_with_leapsecondhas been removed. Use a direct addition withFixedOffsetinstead.
-
-
0.2.2503 Aug 2016Release notes
Open source →This is the last version officially supports Rust 1.12.0 or older.
(0.2.24 was accidentally uploaded without a proper check for warnings in the default state, and replaced by 0.2.25 very shortly. Duh.)
Added
- Serde 0.8 is now supported. 0.7 also remains supported. (#86)
Fixed
- The deserialization implementation for rustc-serialize now properly verifies the input. All serialization codes are also now thoroughly tested. (#42)
-
0.2.2403 Aug 2016Nothing published for this version
-
0.2.2302 Aug 2016Release notes
Open source →Added
-
The documentation was greatly improved for several types, and tons of cross-references have been added. (#77, #78, #80, #82)
-
DateTime::timestamp_subsec_{millis,micros,nanos}methods have been added. (#81)
Fixed
-
When the system time records a leap second, the nanosecond component was mistakenly reset to zero. (#84)
-
Localoffset misbehaves in Windows for August and later, due to the long-standing libtime bug (dates back to mid-2015). Workaround has been implemented. (#85)
-
-
0.2.2221 Apr 2016Release notes
Open source →Fixed
%.6fand%.9fused to print only three digits when the nanosecond part is zero. (#71)- The documentation for
%+has been updated to reflect the current status. (#71)
-
0.2.2129 Mar 2016Release notes
Open source →Fixed
Fixed::LongWeekdayNamewas unable to recognize"sunday"(whoops). (#66)
-
0.2.2005 Mar 2016 -
0.2.1904 Feb 2016Release notes
Open source →Added
- The documentation for
Dateis made clear about its ambiguity and guarantees.
Fixed
DateTime::datehad been wrong when the local date and the UTC date is in disagreement. (#61)
- The documentation for
-
0.2.1823 Jan 2016 -
0.2.1721 Nov 2015Release notes
Open source →Added
- Naive date and time types and
DateTimenow have aserdesupport. They serialize as an ISO 8601 / RFC 3339 string just likeDebug. (#51)
- Naive date and time types and
-
0.2.1606 Sep 2015Release notes
Open source →Added
- Added
%.3f,%.6fand%.9fspecifier for formatting fractional seconds up to 3, 6 or 9 decimal digits. This is a natural extension to the existing%f. Note that this is (not yet) generic, no other value of precision is supported. (#45)
Changed
- Forbade unsized types from implementing
DatelikeandTimelike. This does not make a big harm as any type implementing them should be already sized to be practical, but this change still can break highly generic codes. (#46)
Fixed
- Fixed a broken link in the
README.md. (#41)
- Added