GitHunt
LU

lukesneeringer/datetime-rs

Lightweight date and time in Rust.

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.
  • log: Adds a log::kv::ToValue implementation.
  • serde: Enables serialization and desearialization with serde. (Enabled by default.)
  • tz: Enables support for time-zone-aware date construction.

Languages

Rust100.0%

Contributors

MIT License
Created April 10, 2024
Updated September 9, 2025
lukesneeringer/datetime-rs | GitHunt