X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Data%2FTime%2FRFC822.hs;h=1352e6d58428e12c760cda253de160db92956590;hb=7ed69912b457694657e70496f695685493abcab5;hp=4b3d91cf8799714e45eb15c1dfe16e5b77c72d22;hpb=9f9ed0471883b50fec1b091621f332d62477a34c;p=time-http.git diff --git a/Data/Time/RFC822.hs b/Data/Time/RFC822.hs index 4b3d91c..1352e6d 100644 --- a/Data/Time/RFC822.hs +++ b/Data/Time/RFC822.hs @@ -1,6 +1,9 @@ module Data.Time.RFC822 ( format , parse + + -- private + , showRFC822TimeZone ) where @@ -66,26 +69,19 @@ format zonedTime , ":" , show2 (floor (todSec timeOfDay)) , " " - , showTZ timeZone + , showRFC822TimeZone timeZone ] -showTZ :: TimeZone -> String -showTZ tz - = case timeZoneMinutes tz of - offset | offset < 0 -> '-' : showTZ' (negate offset) - | otherwise -> '+' : showTZ' offset - where - showTZ' offset - = let h = offset `div` 60 - m = offset - h * 60 - in - concat [show2 h, show2 m] +showRFC822TimeZone :: TimeZone -> String +showRFC822TimeZone tz + | timeZoneMinutes tz == 0 = "GMT" + | otherwise = show4digitsTZ tz parse :: String -> Maybe ZonedTime parse src = case P.parse p "" src of Right zt -> Just zt Left _ -> Nothing where - p = do zt <- parser + p = do zt <- rfc822DateAndTime _ <- P.eof return zt