macro_rules! ymd_hms {
($y:literal-$mo:literal-$d:literal $h:literal:$m:literal:$s:literal) => { ... };
($y:literal-$mo:literal-$d:literal) => { ... };
}Expand description
Create a DateTime from YYYY-MM-DD hh:mm:ss
If the hh:mm:ss time component is omitted, it defaults to 00:00:00.
Unfortunately, using this macro with properly formatted dates like 2022-09-22 triggers the clippy lint zero_prefixed_literal for every leading zero (e.g. in 09).
use greg::ymd_hms;
use greg::calendar::{DateTime, Date, Time};
let dt1: DateTime = ymd_hms!(2022-09-22);
let DateTime(date, time) = dt1;
assert_eq!(date, Date::ymd(2022, 9, 22));
assert_eq!(time, Time::MIDNIGHT);
let DateTime(date2, time2) = ymd_hms!(2022-09-22 03:00:00);
assert_eq!(date, date2);
assert_eq!(time2, Time::hms_checked(3, 0, 0));