#calendar #instant #time #seconds #gregorian


Simple implementation of the Gregorian calendar

8 releases

Uses old Rust 2015

0.3.3 Apr 1, 2019
0.3.2 Mar 1, 2019
0.3.1 Oct 23, 2016
0.3.0 Jul 18, 2016
0.1.0 Jul 16, 2016

44 downloads per month
Used in uhr

MIT license

797 lines


Simple implementation of the Gregorian calendar for Rust.

Gregorian rules are used for all time, which is not historically accurate before 1583.

  • UnixTimestamp represents an instant as a (possibly negative) integer number of seconds since the Unix Epoch, January 1st 1970 at midnight UTC. (There is no sub-second resolution.)
  • NaiveDateTime represents a date in the Gregorian calendar with components year, month, day, hour, minute, and second. By itself, it can not be interpreted as an instant in time.
  • DateTime is a NaiveDateTime together with a time zone.


By default the crate uses #![no_std] so that it can be used in freestanding environments. If the system_time Cargo feature is enabled, it uses std to implement conversions to and from std::time::SystemTime.

No runtime deps