6 releases (1 stable)

1.0.0 May 16, 2024
0.2.0 May 15, 2024
0.1.3 Apr 16, 2024

#363 in Date and time

Download history 104/week @ 2024-04-08 346/week @ 2024-04-15 384/week @ 2024-05-13 208/week @ 2024-05-20 92/week @ 2024-05-27 172/week @ 2024-06-03 26/week @ 2024-06-10

505 downloads per month

MIT license

845 lines

Date & Time

ci codecov release docs

The datetime crate provides a simple, easy-to-use DateTime struct (and corresponding macro). DateTime provides storage for a date and time, and optionally a time zone (if the tz feature is enabled).

The underlying storage is a Unix timestamp, so DateTime objects are comparable (even when in different time zones). Additonally, if you don't need the concept of time zones (e.g. because you can assume one), you can leave the tz feature off and not take the baggage.

A DateTime with no time zone specified behaves identically to UTC.


Making a DateTime:

use datetime::DateTime;

let dt = DateTime::ymd(2012, 4, 21).hms(11, 0, 0).build();

You can also use the datetime! macro to get a syntax resembling a date literal:

use datetime::datetime;

let dt = datetime! { 2012-04-21 11:00:00 };


datetime-rs ships with the following features:

  • diesel-pg: Enables interop with PostgreSQL TIMESTAMP columns using Diesel.
  • serde: Enables serialization and desearialization with serde. (Enabled by default.)
  • tz: Enables support for time-zone-aware date construction.


~27K SLoC