module Data.Time.RFC822 (
formatTimeRFC822, parseTimeRFC822
) where
import Control.Applicative
import Data.Maybe
import Data.Monoid ((<>))
import Data.Monoid.Textual hiding (foldr, map)
import Data.String (fromString)
import Data.Text (Text)
import Data.Time.Calendar
import Data.Time.Format
import Data.Time.LocalTime
import Data.Time.Util
formatTimeRFC822 :: (TextualMonoid t) => ZonedTime -> t
formatTimeRFC822 zonedTime = fromString $ formatTime defaultTimeLocale "%a, %d %b %Y %X %z" zonedTime
formatsRFC822 :: [Text]
formatsRFC822 = do
day <- ["%a, ", ""]
year <- ["%y", "%Y"]
time <- ["%X", "%H:%M"]
zone <- ["%z", "%Z"]
return $ day <> "%e %b " <> year <> " " <> time <> " " <> zone
parseTimeRFC822 :: (TextualMonoid t) => t -> Maybe ZonedTime
parseTimeRFC822 = parseTimeUsing formatsRFC822