module Text.Format.Time
( formatTimeLocale
, formatTime
) where
import Data.Time.Calendar
import Data.Time.Clock
import Data.Time.Format hiding (formatTime)
import qualified Data.Time.Format as T
import Data.Time.LocalTime
import Text.Format
instance FormatArg Day where
formatArg = defaultSpecs "%F" formatTime
instance FormatArg UTCTime where
formatArg = formatTime
instance FormatArg UniversalTime where
formatArg = formatTime
instance FormatArg TimeZone where
formatArg = defaultSpecs "%Z" formatTime
instance FormatArg TimeOfDay where
formatArg = defaultSpecs "%T" formatTime
instance FormatArg LocalTime where
formatArg = formatTime
instance FormatArg ZonedTime where
formatArg = defaultSpecs "%F %T%Q %Z" formatTime
formatTimeLocale :: FormatTime t => TimeLocale -> t -> Formatter
formatTimeLocale locale = defaultSpecs "%F %T%Q" $ \x k fmt ->
formatString (T.formatTime locale (fmtSpecs fmt) x) k (fmt{fmtSpecs=""})
formatTime :: FormatTime t => t -> Formatter
formatTime = formatTimeLocale defaultTimeLocale