]> gitweb @ CieloNegro.org - time-http.git/blob - Data/Time/HTTP/Parsec.hs
HTTP
[time-http.git] / Data / Time / HTTP / Parsec.hs
1 {-# LANGUAGE FlexibleContexts #-}
2 module Data.Time.HTTP.Parsec
3     ( rfc2616DateAndTime
4     )
5     where
6
7 import Control.Monad
8 import Data.Time
9 import Data.Time.RFC1123.Parsec
10 import Data.Time.RFC733.Parsec
11 import Data.Time.Asctime.Parsec
12 import Text.Parsec
13
14
15 rfc2616DateAndTime :: Stream s m Char => ParsecT s u m UTCTime
16 rfc2616DateAndTime
17     = choice [ liftM zonedTimeToUTC $ try rfc1123DateAndTime
18              , liftM zonedTimeToUTC $ try rfc733DateAndTime
19              , liftM (localTimeToUTC utc) $ asctime
20              ]