From d994eda887829c0b4e4c9f315cd9ff1320ddc4a9 Mon Sep 17 00:00:00 2001
From: gennyble <gen@nyble.dev>
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(-)

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> {
-- 
cgit 1.4.1-3-g733a5