From d994eda887829c0b4e4c9f315cd9ff1320ddc4a9 Mon Sep 17 00:00:00 2001 From: gennyble Date: Wed, 18 Dec 2024 04:31:03 -0600 Subject: Parses 12-hour time correctly --- src/timeparse.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/timeparse.rs') diff --git a/src/timeparse.rs b/src/timeparse.rs index 830253b..5df731e 100755 --- a/src/timeparse.rs +++ b/src/timeparse.rs @@ -8,7 +8,9 @@ use time::{ const FMT: &[FormatItem<'_>] = format_description!("[year]-[month]-[day] [hour]:[minute]"); const DATE: &[FormatItem<'_>] = format_description!("[year]-[month]-[day]"); -const TIME: &[FormatItem<'_>] = format_description!("[hour]:[minute]"); +const TIME_24HOUR: &[FormatItem<'_>] = format_description!("[hour padding:zero]:[minute]"); +const TIME_12HOUR: &[FormatItem<'_>] = + format_description!("[hour padding:none]:[minute][period case:lower case_sensitive:false]"); #[allow(unused)] const OFFSET: &[FormatItem<'_>] = @@ -85,7 +87,10 @@ fn parse_offset(raw: &str) -> UtcOffset { } fn parse_time(raw: &str) -> Result { - Time::parse(raw, TIME) + match Time::parse(raw, TIME_24HOUR) { + Err(_e) => Time::parse(raw, TIME_12HOUR), + Ok(t) => Ok(t), + } } fn parse_date(raw: &str) -> Result { -- cgit 1.4.1-3-g733a5