{-# LANGUAGE CPP #-} module Data.Time.Orphans where import Data.Orphans () import Control.DeepSeq (NFData (..)) import Data.Time import Data.Time.Clock import Data.Time.Clock.TAI import Data.Time.Format #if !MIN_VERSION_time(1,4,0) instance NFData Day where rnf (ModifiedJulianDay d) = rnf d instance NFData UniversalTime where rnf (ModJulianDate d) = rnf d instance NFData DiffTime where rnf d = d `seq` () instance NFData AbsoluteTime where rnf d = d `seq` () instance NFData UTCTime where rnf (UTCTime d t) = rnf d `seq` rnf t instance NFData NominalDiffTime where rnf d = d `seq` () instance NFData LocalTime where rnf (LocalTime d tod) = rnf d `seq` rnf tod instance NFData ZonedTime where rnf (ZonedTime lt tz) = rnf lt `seq` rnf tz instance NFData TimeOfDay where rnf (TimeOfDay h m s) = rnf h `seq` rnf m `seq` rnf s instance NFData TimeZone where rnf (TimeZone a b c) = rnf a `seq` rnf b `seq` rnf c #endif #if !MIN_VERSION_time(1,6,0) instance ParseTime UniversalTime where -- substituteTimeSpecifier _ = timeSubstituteTimeSpecifier -- parseTimeSpecifier _ = timeParseTimeSpecifier buildTime l xs = localTimeToUT1 0 (buildTime l xs) instance FormatTime UniversalTime where formatCharacter c = fmap (\f tl fo t -> f tl fo (ut1ToLocalTime 0 t)) (formatCharacter c) instance Show UniversalTime where show t = show (ut1ToLocalTime 0 t) instance Read UniversalTime where readsPrec n s = [ (localTimeToUT1 0 t, r) | (t,r) <- readsPrec n s ] #endif