]> gitweb @ CieloNegro.org - time-http.git/blobdiff - Data/Time/RFC822.hs
HTTP
[time-http.git] / Data / Time / RFC822.hs
index c31c2448de6c2914938daa1c5ea1ed436938271c..1352e6d58428e12c760cda253de160db92956590 100644 (file)
@@ -1,6 +1,9 @@
 module Data.Time.RFC822
     ( format
     , parse
+
+    -- private
+    , showRFC822TimeZone
     )
     where
 
@@ -66,14 +69,19 @@ format zonedTime
                , ":"
                , show2 (floor (todSec timeOfDay))
                , " "
-               , show4digitsTZ timeZone
+               , showRFC822TimeZone timeZone
                ]
 
+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