]> gitweb @ CieloNegro.org - time-http.git/blobdiff - Data/Time/HTTP/Parsec.hs
HTTP
[time-http.git] / Data / Time / HTTP / Parsec.hs
diff --git a/Data/Time/HTTP/Parsec.hs b/Data/Time/HTTP/Parsec.hs
new file mode 100644 (file)
index 0000000..03bd54c
--- /dev/null
@@ -0,0 +1,20 @@
+{-# LANGUAGE FlexibleContexts #-}
+module Data.Time.HTTP.Parsec
+    ( rfc2616DateAndTime
+    )
+    where
+
+import Control.Monad
+import Data.Time
+import Data.Time.RFC1123.Parsec
+import Data.Time.RFC733.Parsec
+import Data.Time.Asctime.Parsec
+import Text.Parsec
+
+
+rfc2616DateAndTime :: Stream s m Char => ParsecT s u m UTCTime
+rfc2616DateAndTime
+    = choice [ liftM zonedTimeToUTC $ try rfc1123DateAndTime
+             , liftM zonedTimeToUTC $ try rfc733DateAndTime
+             , liftM (localTimeToUTC utc) $ asctime
+             ]