Expand description
§UTC2K
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 theLocal2k
/FmtLocal2k
structs. Refer to the documentation for important caveats and limitations.serde
: Enables serialization/deserialization support.sqlx-mysql
: Enablessqlx
(mysql) support forUtc2k
.
Structs§
- FmtLocal2k
local
- Formatted Local
UTC2K. - FmtUtc2k
- Formatted UTC2K.
- Local2k
local
- Local
UTC2K. - Utc2k
- UTC2K.
Enums§
- Month
- Month.
- Utc2k
Error - 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.