-------------------------------------------------------------------- -- | -- Module : Text.Feed.Util -- Copyright : (c) Galois, Inc. 2008, -- (c) Sigbjorn Finne 2009- -- License : BSD3 -- -- Maintainer: Sigbjorn Finne -- Stability : provisional -- Portability: portable -- -------------------------------------------------------------------- module Text.Feed.Util ( toFeedDateString , toFeedDateStringUTC ) where import Prelude.Compat import Data.Time (UTCTime, formatTime) import qualified Data.Time.Locale.Compat import qualified System.Locale import System.Time (ClockTime, formatCalendarTime, toUTCTime) import Text.Feed.Types -- | 'toFeedDateString' translates a calendar time into -- the format expected by the feed kind. toFeedDateString :: FeedKind -> ClockTime -> String {-Date-} toFeedDateString fk ct = formatCalendarTime System.Locale.defaultTimeLocale fmt ut where fmt = feedKindTimeFormat fk ut = toUTCTime ct -- | 'toFeedDateStringUTC' translates a UTC time into -- the format expected by the feed kind. toFeedDateStringUTC :: FeedKind -> UTCTime -> String {-Date-} toFeedDateStringUTC fk = formatTime Data.Time.Locale.Compat.defaultTimeLocale fmt where fmt = feedKindTimeFormat fk -- | Time format expected by the feed kind. feedKindTimeFormat :: FeedKind -> String feedKindTimeFormat fk = case fk of AtomKind {} -> atomRdfTimeFormat RSSKind {} -> "%a, %d %b %Y %H:%M:%S GMT" RDFKind {} -> atomRdfTimeFormat where atomRdfTimeFormat = "%Y-%m-%dT%H:%M:%SZ"