time-1.14: A time library
Safe HaskellSafe
LanguageHaskell2010

Data.Time.Clock.System

Description

Fast access to the system clock.

Synopsis

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.

Instances

Instances details
NFData SystemTime Source # 
Instance details

Defined in Data.Time.Clock.Internal.SystemTime

Methods

rnf :: SystemTime -> () Source #

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

Generic SystemTime Source # 
Instance details

Defined in Data.Time.Clock.Internal.SystemTime

Associated Types

type Rep SystemTime 
Instance details

Defined in Data.Time.Clock.Internal.SystemTime

type Rep SystemTime = D1 ('MetaData "SystemTime" "Data.Time.Clock.Internal.SystemTime" "time-1.14-40b8" 'False) (C1 ('MetaCons "MkSystemTime" 'PrefixI 'True) (S1 ('MetaSel ('Just "systemSeconds") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Int64) :*: S1 ('MetaSel ('Just "systemNanoseconds") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Word32)))
Show SystemTime Source # 
Instance details

Defined in Data.Time.Clock.Internal.SystemTime

Eq SystemTime Source # 
Instance details

Defined in Data.Time.Clock.Internal.SystemTime

Ord SystemTime Source # 
Instance details

Defined in Data.Time.Clock.Internal.SystemTime

Lift SystemTime Source # 
Instance details

Defined in Data.Time.Clock.Internal.SystemTime

Methods

lift :: Quote m => SystemTime -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => SystemTime -> Code m SystemTime #

type Rep SystemTime Source # 
Instance details

Defined in Data.Time.Clock.Internal.SystemTime

type Rep SystemTime = D1 ('MetaData "SystemTime" "Data.Time.Clock.Internal.SystemTime" "time-1.14-40b8" 'False) (C1 ('MetaCons "MkSystemTime" 'PrefixI 'True) (S1 ('MetaSel ('Just "systemSeconds") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Int64) :*: S1 ('MetaSel ('Just "systemNanoseconds") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Word32)))

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.