6 releases (1 stable)

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

#372 in Date and time

Download history 233/week @ 2024-04-10 217/week @ 2024-04-17 3/week @ 2024-05-08

349 downloads per month

MIT license

35KB
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.

Examples

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 };

Features

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.

Dependencies

~0.2–1.4MB
~29K SLoC