time-1.15: A time library
Safe HaskellSafe
LanguageGHC2021

Data.Time.Clock

Description

Types and functions for UTC and UT1

Synopsis

Universal Time

Time as measured by the Earth.

newtype UniversalTime #

The Modified Julian Date is the day with the fraction of the day, measured from UT midnight. It's used to represent UT1, which is time as measured by the earth's rotation, adjusted for various wobbles.

Constructors

ModJulianDate 

Instances

Instances details
NFData UniversalTime # 
Instance details

Defined in Data.Time.Clock.Internal.UniversalTime

Methods

rnf :: UniversalTime -> () Source #

Eq UniversalTime # 
Instance details

Defined in Data.Time.Clock.Internal.UniversalTime

Ord UniversalTime # 
Instance details

Defined in Data.Time.Clock.Internal.UniversalTime

Data UniversalTime # 
Instance details

Defined in Data.Time.Clock.Internal.UniversalTime

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UniversalTime -> c UniversalTime #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c UniversalTime #

toConstr :: UniversalTime -> Constr #

dataTypeOf :: UniversalTime -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c UniversalTime) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c UniversalTime) #

gmapT :: (forall b. Data b => b -> b) -> UniversalTime -> UniversalTime #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> UniversalTime -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> UniversalTime -> r #

gmapQ :: (forall d. Data d => d -> u) -> UniversalTime -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> UniversalTime -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> UniversalTime -> m UniversalTime #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UniversalTime -> m UniversalTime #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UniversalTime -> m UniversalTime #

Generic UniversalTime # 
Instance details

Defined in Data.Time.Clock.Internal.UniversalTime

Associated Types

type Rep UniversalTime 
Instance details

Defined in Data.Time.Clock.Internal.UniversalTime

type Rep UniversalTime = D1 ('MetaData "UniversalTime" "Data.Time.Clock.Internal.UniversalTime" "time-1.15-41ae" 'True) (C1 ('MetaCons "ModJulianDate" 'PrefixI 'True) (S1 ('MetaSel ('Just "getModJulianDate") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational)))
Read UniversalTime # 
Instance details

Defined in Data.Time.Format.Parse

Show UniversalTime # 
Instance details

Defined in Data.Time.LocalTime.Internal.LocalTime

FormatTime UniversalTime # 
Instance details

Defined in Data.Time.Format.Format.Instances

Methods

formatCharacter :: Bool -> Char -> Maybe (FormatOptions -> UniversalTime -> String)

ParseTime UniversalTime # 
Instance details

Defined in Data.Time.Format.Parse.Instances

Lift UniversalTime # 
Instance details

Defined in Data.Time.Clock.Internal.UniversalTime

Methods

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

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

type Rep UniversalTime # 
Instance details

Defined in Data.Time.Clock.Internal.UniversalTime

type Rep UniversalTime = D1 ('MetaData "UniversalTime" "Data.Time.Clock.Internal.UniversalTime" "time-1.15-41ae" 'True) (C1 ('MetaCons "ModJulianDate" 'PrefixI 'True) (S1 ('MetaSel ('Just "getModJulianDate") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational)))

Absolute intervals

data DiffTime #

This is a length of time, as measured by a clock. Conversion functions such as fromInteger and realToFrac will treat it as seconds. For example, (0.010 :: DiffTime) corresponds to 10 milliseconds.

It has a precision of one picosecond (= 10^-12 s). Enumeration functions will treat it as picoseconds.

Instances

Instances details
NFData DiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.DiffTime

Methods

rnf :: DiffTime -> () Source #

Eq DiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.DiffTime

Ord DiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.DiffTime

Data DiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.DiffTime

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DiffTime -> c DiffTime #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DiffTime #

toConstr :: DiffTime -> Constr #

dataTypeOf :: DiffTime -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DiffTime) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DiffTime) #

gmapT :: (forall b. Data b => b -> b) -> DiffTime -> DiffTime #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DiffTime -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DiffTime -> r #

gmapQ :: (forall d. Data d => d -> u) -> DiffTime -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> DiffTime -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> DiffTime -> m DiffTime #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DiffTime -> m DiffTime #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DiffTime -> m DiffTime #

Enum DiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.DiffTime

Num DiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.DiffTime

Read DiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.DiffTime

Fractional DiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.DiffTime

Real DiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.DiffTime

RealFrac DiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.DiffTime

Methods

properFraction :: Integral b => DiffTime -> (b, DiffTime) #

truncate :: Integral b => DiffTime -> b #

round :: Integral b => DiffTime -> b #

ceiling :: Integral b => DiffTime -> b #

floor :: Integral b => DiffTime -> b #

Show DiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.DiffTime

FormatTime DiffTime # 
Instance details

Defined in Data.Time.Format.Format.Instances

Methods

formatCharacter :: Bool -> Char -> Maybe (FormatOptions -> DiffTime -> String)

ParseTime DiffTime # 
Instance details

Defined in Data.Time.Format.Parse.Instances

Lift DiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.DiffTime

Methods

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

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

pattern Seconds :: Pico -> DiffTime #

pattern Minutes :: Pico -> DiffTime #

pattern Hours :: Pico -> DiffTime #

secondsToDiffTime :: Integer -> DiffTime #

Create a DiffTime which represents an integral number of seconds.

picosecondsToDiffTime :: Integer -> DiffTime #

Create a DiffTime from a number of picoseconds.

diffTimeToPicoseconds :: DiffTime -> Integer #

Get the number of picoseconds in a DiffTime.

UTC

UTC is time as measured by a clock, corrected to keep pace with the earth by adding or removing occasional seconds, known as "leap seconds". These corrections are not predictable and are announced with six month's notice. No table of these corrections is provided, as any program compiled with it would become out of date in six months.

If you don't care about leap seconds, use UTCTime and NominalDiffTime for your clock calculations, and you'll be fine.

data UTCTime #

This is the simplest representation of UTC. It consists of the day number, and a time offset from midnight. Note that if a day has a leap second added to it, it will have 86401 seconds.

Constructors

UTCTime 

Fields

Instances

Instances details
NFData UTCTime # 
Instance details

Defined in Data.Time.Clock.Internal.UTCTime

Methods

rnf :: UTCTime -> () Source #

Eq UTCTime # 
Instance details

Defined in Data.Time.Clock.Internal.UTCTime

Methods

(==) :: UTCTime -> UTCTime -> Bool #

(/=) :: UTCTime -> UTCTime -> Bool #

Ord UTCTime # 
Instance details

Defined in Data.Time.Clock.Internal.UTCTime

Data UTCTime # 
Instance details

Defined in Data.Time.Clock.Internal.UTCTime

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UTCTime -> c UTCTime #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c UTCTime #

toConstr :: UTCTime -> Constr #

dataTypeOf :: UTCTime -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c UTCTime) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c UTCTime) #

gmapT :: (forall b. Data b => b -> b) -> UTCTime -> UTCTime #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> UTCTime -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> UTCTime -> r #

gmapQ :: (forall d. Data d => d -> u) -> UTCTime -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> UTCTime -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> UTCTime -> m UTCTime #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UTCTime -> m UTCTime #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UTCTime -> m UTCTime #

Generic UTCTime # 
Instance details

Defined in Data.Time.Clock.Internal.UTCTime

Associated Types

type Rep UTCTime 
Instance details

Defined in Data.Time.Clock.Internal.UTCTime

type Rep UTCTime = D1 ('MetaData "UTCTime" "Data.Time.Clock.Internal.UTCTime" "time-1.15-41ae" 'False) (C1 ('MetaCons "UTCTime" 'PrefixI 'True) (S1 ('MetaSel ('Just "utctDay") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Day) :*: S1 ('MetaSel ('Just "utctDayTime") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DiffTime)))

Methods

from :: UTCTime -> Rep UTCTime x #

to :: Rep UTCTime x -> UTCTime #

Read UTCTime # 
Instance details

Defined in Data.Time.Format.Parse

Show UTCTime # 
Instance details

Defined in Data.Time.LocalTime.Internal.ZonedTime

FormatTime UTCTime # 
Instance details

Defined in Data.Time.Format.Format.Instances

Methods

formatCharacter :: Bool -> Char -> Maybe (FormatOptions -> UTCTime -> String)

ISO8601 UTCTime #

yyyy-mm-ddThh:mm:ss[.ss]Z [ISO 8601:2004(E) sec. 4.3.2 extended format]

Instance details

Defined in Data.Time.Format.ISO8601

ParseTime UTCTime # 
Instance details

Defined in Data.Time.Format.Parse.Instances

Lift UTCTime # 
Instance details

Defined in Data.Time.Clock.Internal.UTCTime

Methods

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

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

type Rep UTCTime # 
Instance details

Defined in Data.Time.Clock.Internal.UTCTime

type Rep UTCTime = D1 ('MetaData "UTCTime" "Data.Time.Clock.Internal.UTCTime" "time-1.15-41ae" 'False) (C1 ('MetaCons "UTCTime" 'PrefixI 'True) (S1 ('MetaSel ('Just "utctDay") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Day) :*: S1 ('MetaSel ('Just "utctDayTime") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DiffTime)))

data NominalDiffTime #

This is a length of time, as measured by UTC. It has a precision of one picosecond (10^-12 s).

Conversion functions such as fromInteger and realToFrac will treat it as seconds. For example, (0.010 :: NominalDiffTime) corresponds to 10 milliseconds.

Enumeration functions will treat it as picoseconds.

It ignores leap-seconds, so it's not necessarily a fixed amount of clock time. For instance, 23:00 UTC + 2 hours of NominalDiffTime = 01:00 UTC (+ 1 day), regardless of whether a leap-second intervened.

Instances

Instances details
NFData NominalDiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.NominalDiffTime

Methods

rnf :: NominalDiffTime -> () Source #

Eq NominalDiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.NominalDiffTime

Ord NominalDiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.NominalDiffTime

Data NominalDiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.NominalDiffTime

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NominalDiffTime -> c NominalDiffTime #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c NominalDiffTime #

toConstr :: NominalDiffTime -> Constr #

dataTypeOf :: NominalDiffTime -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c NominalDiffTime) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NominalDiffTime) #

gmapT :: (forall b. Data b => b -> b) -> NominalDiffTime -> NominalDiffTime #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NominalDiffTime -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NominalDiffTime -> r #

gmapQ :: (forall d. Data d => d -> u) -> NominalDiffTime -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> NominalDiffTime -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> NominalDiffTime -> m NominalDiffTime #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NominalDiffTime -> m NominalDiffTime #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NominalDiffTime -> m NominalDiffTime #

Enum NominalDiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.NominalDiffTime

Num NominalDiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.NominalDiffTime

Read NominalDiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.NominalDiffTime

Fractional NominalDiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.NominalDiffTime

Real NominalDiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.NominalDiffTime

RealFrac NominalDiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.NominalDiffTime

Show NominalDiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.NominalDiffTime

FormatTime NominalDiffTime # 
Instance details

Defined in Data.Time.Format.Format.Instances

Methods

formatCharacter :: Bool -> Char -> Maybe (FormatOptions -> NominalDiffTime -> String)

ParseTime NominalDiffTime # 
Instance details

Defined in Data.Time.Format.Parse.Instances

Lift NominalDiffTime # 
Instance details

Defined in Data.Time.Clock.Internal.NominalDiffTime

Methods

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

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

pattern Nominal :: DiffTime -> NominalDiffTime #

convert from DiffTime

secondsToNominalDiffTime :: Pico -> NominalDiffTime #

Create a NominalDiffTime from a number of seconds.

Since: time-1.9.1

nominalDiffTimeToSeconds :: NominalDiffTime -> Pico #

Get the seconds in a NominalDiffTime.

Since: time-1.9.1

addUTCTime :: NominalDiffTime -> UTCTime -> UTCTime #

addUTCTime a b = a + b

diffUTCTime :: UTCTime -> UTCTime -> NominalDiffTime #

diffUTCTime a b = a - b

getCurrentTime :: IO UTCTime #

Get the current UTCTime from the system clock.

getTime_resolution :: DiffTime #

The resolution of getSystemTime, getCurrentTime, getPOSIXTime. On UNIX systems this uses clock_getres, which may be wrong on WSL2.