]> gitweb @ CieloNegro.org - time-http.git/blobdiff - Data/Time/HTTP.hs
HTTP
[time-http.git] / Data / Time / HTTP.hs
diff --git a/Data/Time/HTTP.hs b/Data/Time/HTTP.hs
new file mode 100644 (file)
index 0000000..3a3dc3e
--- /dev/null
@@ -0,0 +1,29 @@
+module Data.Time.HTTP
+    ( format
+    , parse
+    )
+    where
+
+import qualified Data.Time.RFC1123 as RFC1123
+import qualified Text.Parsec as P
+
+import Data.Time
+import Data.Time.HTTP.Parsec
+
+
+format :: UTCTime -> String
+format utcTime
+    = let timeZone  = TimeZone 0 False "GMT"
+          zonedTime = utcToZonedTime timeZone utcTime
+      in
+        RFC1123.format zonedTime
+
+
+parse :: String -> Maybe UTCTime
+parse src = case P.parse p "" src of
+              Right ut -> Just ut
+              Left  _  -> Nothing
+    where
+      p = do zt <- rfc2616DateAndTime
+             _  <- P.eof
+             return zt