module Data.Time.Hora.Format where import Data.Time.Format (formatTime,defaultTimeLocale) import Data.Time.Clock import Data.Time.LocalTime as L import Data.Time.Calendar import Data.Time.Hora.Type.Time import Text.Printf {- | yyyy-mm-dd UTC -} iso::UTCTime -> String iso t0 = showGregorian $ utctDay t0 {- | yyyy-mm-dd local -} iso'::TimeZone -> UTCTime -> Tz String iso' tz0 utc0 = let lt2 = L.utcToLocalTime tz0 utc0 day2 = localDay lt2 (y3,m3,d3) = toGregorian day2 in Tz tz0 $ printf "%04v-%02v-%02v" y3 m3 d3 {- | yyyymmdd UTC -} ymd::UTCTime -> String ymd utc0 = formatTime defaultTimeLocale "%Y%m%d" utc0 {- | yyyymmdd local -} ymd'::TimeZone -> UTCTime -> Tz String ymd' tz0 utc0 = let lt2 = L.utcToLocalTime tz0 utc0 day2 = localDay lt2 (y3,m3,d3) = toGregorian day2 in Tz tz0 $ printf "%04v%02v%02v" y3 m3 d3 formatUTCTime::String -- ^ format. see 'formatTime' -> UTCTime -> String formatUTCTime format0 = formatTime defaultTimeLocale format0