Crate utc2k

Crate utc2k 

Source
Expand description

§UTC2K

docs.rs changelog
crates.io ci deps.rs
license contributions welcome

UTC2K is a heavily-optimized — and extremely niche — date/time library that only supports UTC happenings in this century.

For the moments between 2000-01-01 00:00:00..=2099-12-31 23:59:59, it can run circles around crates like chrono and time, while still being able to:

  • Determine “now”, at least until the final seconds of 2099;
  • Convert to/from Unix timestamps;
  • Convert to/from all sorts of different date/time strings;
  • Perform checked and saturating addition/subtraction;
  • Calculate ordinals, weekdays, leap years, etc.;

§Examples

The library’s main export is Utc2k, a Copy-friendly struct representing a specific UTC datetime.

use utc2k::{Utc2k, Weekday};

// Instantiation, four ways:
let date = Utc2k::now();                             // The current system time.
let date = Utc2k::new(2020, 1, 2, 12, 30, 30);       // From parts.
let date = Utc2k::from_unixtime(4_102_444_799);      // From a timestamp.
let date = Utc2k::from_ascii(b"2024-10-31 00:00:00") // From a datetime string.
               .unwrap();

// What day was Halloween 2024, anyway?
assert_eq!(
    date.weekday(),
    Weekday::Thursday,
);

// Ordinals are a kind of bird, right?
assert_eq!(
    date.ordinal(),
    305,
);

// Boss wants an RFC2822 for some reason?
assert_eq!(
    date.to_rfc2822(),
    "Thu, 31 Oct 2024 00:00:00 +0000",
);

§Optional Crate Features

  • local: Enables the Local2k/FmtLocal2k structs. Refer to the documentation for important caveats and limitations.
  • serde: Enables serialization/deserialization support.
  • sqlx-mysql: Enables sqlx (mysql) support for Utc2k.

Structs§

FmtLocal2klocal
Formatted Local UTC2K.
FmtUtc2k
Formatted UTC2K.
Local2klocal
Local UTC2K.
Utc2k
UTC2K.

Enums§

Month
Month.
Utc2kError
Errors.
Weekday
Weekday.

Constants§

DAY_IN_SECONDS
Seconds per Day.
HOUR_IN_SECONDS
Seconds per Hour.
MINUTE_IN_SECONDS
Seconds per Minute.
WEEK_IN_SECONDS
Seconds per Week.
YEAR_IN_SECONDS
Seconds per (Normal) Year.

Functions§

unixtime
Now (Current Unixtime).
year
Now (Current Year).