From b6d22f218b5b139e71e01e13d4024234225f0ee4 Mon Sep 17 00:00:00 2001 From: Lennart <18233294+lennart-k@users.noreply.github.com> Date: Tue, 8 Oct 2024 15:57:43 +0200 Subject: [PATCH] implement From for DateTime --- crates/store/src/timestamp.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/crates/store/src/timestamp.rs b/crates/store/src/timestamp.rs index ee57543..2a102b5 100644 --- a/crates/store/src/timestamp.rs +++ b/crates/store/src/timestamp.rs @@ -66,6 +66,24 @@ impl FromStr for CalDateTime { } } +impl CalDateTime { + pub fn utc(&self) -> DateTime { + match &self { + CalDateTime::Local(local_datetime) => local_datetime.and_utc(), + CalDateTime::Utc(utc_datetime) => utc_datetime.to_owned(), + // TODO: respect timezone! + CalDateTime::ExplicitTZ((_tzid, datetime)) => datetime.and_utc(), + CalDateTime::Date(date) => date.and_time(NaiveTime::default()).and_utc(), + } + } +} + +impl From for DateTime { + fn from(value: CalDateTime) -> Self { + value.utc() + } +} + #[test] fn test_parse_cal_datetime() { CalDateTime::from_str("19980118T230000").unwrap();