X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=time-http.git;a=blobdiff_plain;f=Data%2FTime%2FHTTP%2FInternal.hs;fp=Data%2FTime%2FHTTP%2FInternal.hs;h=b008d9da6911d530050ae3d91a32efbf94afcd75;hp=6e0753dc1580bb49ed0890022988a3d98d25905b;hb=dac3f355097e647637a52dfa8dad43bbc5d589fa;hpb=2371481fd02415a8a99297679c003b8c70be4f8b diff --git a/Data/Time/HTTP/Internal.hs b/Data/Time/HTTP/Internal.hs index 6e0753d..b008d9d 100644 --- a/Data/Time/HTTP/Internal.hs +++ b/Data/Time/HTTP/Internal.hs @@ -10,8 +10,10 @@ module Data.Time.HTTP.Internal import Control.Applicative import Data.Ascii (AsciiBuilder) import Data.Attoparsec.Char8 +import Data.Convertible.Base +import Data.Tagged import Data.Time -import qualified Data.Time.RFC1123.Internal as RFC1123 +import Data.Time.RFC1123 import Data.Time.RFC733 import Data.Time.Asctime import Prelude.Unicode @@ -20,17 +22,23 @@ import Prelude.Unicode -- (RFC 2616). httpDateAndTime ∷ Parser UTCTime httpDateAndTime - = choice [ zonedTimeToUTC <$> try RFC1123.rfc1123DateAndTime + = choice [ zonedTimeToUTC <$> try rfc1123DateAndTime , zonedTimeToUTC <$> try rfc733DateAndTime , localTimeToUTC utc <$> asctime ] -- |Convert a 'UTCTime' to RFC 1123 date and time string. toAsciiBuilder ∷ UTCTime → AsciiBuilder -toAsciiBuilder = RFC1123.toAsciiBuilder ∘ ut2zt +toAsciiBuilder = untag' ∘ cs ∘ ut2zt where + untag' ∷ Tagged RFC1123 AsciiBuilder → AsciiBuilder + {-# INLINE CONLIKE untag' #-} + untag' = untag + ut2zt ∷ UTCTime → ZonedTime + {-# INLINE ut2zt #-} ut2zt = utcToZonedTime gmt gmt ∷ TimeZone + {-# INLINE CONLIKE gmt #-} gmt = TimeZone 0 False "GMT"