diff options
Diffstat (limited to 'src/timeparse.rs')
-rwxr-xr-x | src/timeparse.rs | 9 |
1 files changed, 7 insertions, 2 deletions
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, time::error::Parse> { - 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<Date, time::error::Parse> { |