From 4528edbc14bd229e500f6c85960eb14a951dbfbe Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Tue, 22 Jul 2014 09:46:15 -0400 Subject: [PATCH] Begin to add xp_ambiguous_time, still needs doctests. --- src/TSN/Picklers.hs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) 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 -- 2.44.2