koji-tool-0.8.3: src/Time.hs
module Time (
compactZonedTime,
lookupTime)
where
import Data.Time.Clock
import Data.Time.Clock.System
import Data.Time.Format
import Data.Time.LocalTime
import Distribution.Koji.API (Struct, lookupStruct)
readTime' :: Double -> UTCTime
readTime' =
let mkSystemTime t = MkSystemTime t 0
in systemToUTCTime . mkSystemTime . truncate
compactZonedTime :: TimeZone -> UTCTime -> String
compactZonedTime tz =
formatTime defaultTimeLocale "%Y-%m-%d %H:%M:%S%Z" . utcToZonedTime tz
lookupTime :: String -> Struct -> Maybe UTCTime
lookupTime prefix str = do
case lookupStruct (prefix ++ "_ts") str of
Just ts -> return $ readTime' ts
Nothing ->
lookupStruct (prefix ++ "_time") str >>=
parseTimeM False defaultTimeLocale "%Y-%m-%d %H:%M:%S%Q%EZ"