X-Git-Url: http://gitweb.michael.orlitzky.com/?p=dead%2Fhtsn-import.git;a=blobdiff_plain;f=src%2FTSN%2FPicklers.hs;h=3863017c090018268dc67f93c8e34c3583667543;hp=f697b8ca48196fadebdfc6cd92a912f113ab0e2f;hb=4528edbc14bd229e500f6c85960eb14a951dbfbe;hpb=fbaea63ea21b5b35d22f43e096e09983b76dcef7 diff --git a/src/TSN/Picklers.hs b/src/TSN/Picklers.hs index f697b8c..3863017 100644 --- a/src/TSN/Picklers.hs +++ b/src/TSN/Picklers.hs @@ -2,6 +2,7 @@ -- feed. -- module TSN.Picklers ( + xp_ambiguous_time, xp_date, xp_date_padded, xp_datetime, @@ -285,3 +286,23 @@ xp_time_stamp = from_time_stamp :: UTCTime -> String from_time_stamp = formatTime defaultTimeLocale time_stamp_format . subtract_five + + +-- | (Un)pickle an ambiguous 12-hour AM/PM time, which is ambiguous +-- because it's missing the AM/PM part. +-- +-- Examples: +-- +xp_ambiguous_time :: PU UTCTime +xp_ambiguous_time = + (to_time, from_time) `xpWrapMaybe` xpText + where + ambiguous_time_format :: String + ambiguous_time_format = "%-I:%M" + + to_time :: String -> Maybe UTCTime + to_time = parseTime defaultTimeLocale ambiguous_time_format + + from_time :: UTCTime -> String + from_time = + formatTime defaultTimeLocale ambiguous_time_format