]> gitweb @ CieloNegro.org - time-http.git/blob - Data/Time/HTTP.hs
3a3dc3e833aeeeb82b16cf11c22f19d0999ff2eb
[time-http.git] / Data / Time / HTTP.hs
1 module Data.Time.HTTP
2     ( format
3     , parse
4     )
5     where
6
7 import qualified Data.Time.RFC1123 as RFC1123
8 import qualified Text.Parsec as P
9
10 import Data.Time
11 import Data.Time.HTTP.Parsec
12
13
14 format :: UTCTime -> String
15 format utcTime
16     = let timeZone  = TimeZone 0 False "GMT"
17           zonedTime = utcToZonedTime timeZone utcTime
18       in
19         RFC1123.format zonedTime
20
21
22 parse :: String -> Maybe UTCTime
23 parse src = case P.parse p "" src of
24               Right ut -> Just ut
25               Left  _  -> Nothing
26     where
27       p = do zt <- rfc2616DateAndTime
28              _  <- P.eof
29              return zt