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
-- (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"