Data.Time.Clock.System

time-1.8.0.1: A time library

Safe Haskell | Safe
Language | Haskell2010

Data.Time.Clock.System (signature[?])

Description

Fast access to the system clock.

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 Source #

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

data SystemTime Source #

`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

Eq SystemTime # |
Methods (==) :: SystemTime -> SystemTime -> Bool # (/=) :: SystemTime -> SystemTime -> Bool #
Ord 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 #
Show SystemTime # |
Methods showsPrec :: Int -> SystemTime -> ShowS Source # show :: SystemTime -> String Source # showList :: [SystemTime] -> ShowS Source #
NFData SystemTime # |
Methods rnf :: SystemTime -> () Source #

truncateSystemTimeLeapSecond :: SystemTime -> SystemTime Source #

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 Source #

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

systemToUTCTime :: SystemTime -> UTCTime Source #

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

utcToSystemTime :: UTCTime -> SystemTime Source #

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

systemToTAITime :: SystemTime -> AbsoluteTime Source #

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