]> gitweb @ CieloNegro.org - time-http.git/blob - Data/Time/HTTP/Parsec.hs
ditz issue
[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 -- |This is a parsec parser for date and time formats allowed in
15 -- HTTP\/1.1 (RFC 2616).
16 rfc2616DateAndTime :: Stream s m Char => ParsecT s u m UTCTime
17 rfc2616DateAndTime
18     = choice [ liftM zonedTimeToUTC $ try rfc1123DateAndTime
19              , liftM zonedTimeToUTC $ try rfc733DateAndTime
20              , liftM (localTimeToUTC utc) asctime
21              ]