Data.Time.Clock.System.Compat

time-compat-1.9.8: Compatibility package for time

Safe Haskell | Trustworthy
Language | Haskell2010

Data.Time.Clock.System.Compat

Synopsis

- systemEpochDay :: Day
- data SystemTime = MkSystemTime {
  - systemSeconds :: !Int64
  - systemNanoseconds :: !Word32
  }
- truncateSystemTimeLeapSecond :: SystemTime -> SystemTime
- getSystemTime :: IO SystemTime
- systemToUTCTime :: SystemTime -> UTCTime
- utcToSystemTime :: UTCTime -> SystemTime
- systemToTAITime :: SystemTime -> AbsoluteTime

# Documentation

systemEpochDay :: Day #

The day of the epoch of `SystemTime`, 1970-01-01

data SystemTime #

`SystemTime` is time returned by system clock functions. Its semantics depends on the clock function, but the epoch is typically the beginning of 1970. Note that `systemNanoseconds` of 1E9 to 2E9-1 can be used to represent leap seconds.

Constructors

MkSystemTime |
Fields systemSeconds :: !Int64 systemNanoseconds :: !Word32

#### Instances

Instances details

NFData SystemTime |
Instance details Defined in Data.Time.Clock.Internal.SystemTime Methods rnf :: SystemTime -> () #
Data SystemTime |
Instance details Defined in Data.Time.Clock.Internal.SystemTime Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SystemTime -> c SystemTime # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SystemTime # toConstr :: SystemTime -> Constr # dataTypeOf :: SystemTime -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SystemTime) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SystemTime) # gmapT :: (forall b. Data b => b -> b) -> SystemTime -> SystemTime # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SystemTime -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SystemTime -> r # gmapQ :: (forall d. Data d => d -> u) -> SystemTime -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SystemTime -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SystemTime -> m SystemTime # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SystemTime -> m SystemTime # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SystemTime -> m SystemTime #
Show SystemTime |
Instance details Defined in Data.Time.Clock.Internal.SystemTime Methods showsPrec :: Int -> SystemTime -> ShowS # show :: SystemTime -> String # showList :: [SystemTime] -> ShowS #
Eq SystemTime |
Instance details Defined in Data.Time.Clock.Internal.SystemTime Methods (==) :: SystemTime -> SystemTime -> Bool # (/=) :: SystemTime -> SystemTime -> Bool #
Ord SystemTime |
Instance details Defined in Data.Time.Clock.Internal.SystemTime Methods compare :: SystemTime -> SystemTime -> Ordering # (<) :: SystemTime -> SystemTime -> Bool # (<=) :: SystemTime -> SystemTime -> Bool # (>) :: SystemTime -> SystemTime -> Bool # (>=) :: SystemTime -> SystemTime -> Bool # max :: SystemTime -> SystemTime -> SystemTime # min :: SystemTime -> SystemTime -> SystemTime #

truncateSystemTimeLeapSecond :: SystemTime -> SystemTime #

Map leap-second values to the start of the following second. The resulting `systemNanoseconds` will always be in the range 0 to 1E9-1.

getSystemTime :: IO SystemTime #

Get the system time, epoch start of 1970 UTC, leap-seconds ignored. `getSystemTime` is typically much faster than `getCurrentTime`.

systemToUTCTime :: SystemTime -> UTCTime #

Convert `SystemTime` to `UTCTime`, matching zero `SystemTime` to midnight of `systemEpochDay` UTC.

utcToSystemTime :: UTCTime -> SystemTime #

Convert `UTCTime` to `SystemTime`, matching zero `SystemTime` to midnight of `systemEpochDay` UTC.

systemToTAITime :: SystemTime -> AbsoluteTime #

Convert `SystemTime` to `AbsoluteTime`, matching zero `SystemTime` to midnight of `systemEpochDay` TAI.