Safe Haskell  Safe 

Language  Haskell2010 
Types and functions for UTC and UT1
Synopsis
 newtype UniversalTime = ModJulianDate {}
 data DiffTime
 secondsToDiffTime :: Integer > DiffTime
 picosecondsToDiffTime :: Integer > DiffTime
 diffTimeToPicoseconds :: DiffTime > Integer
 data UTCTime = UTCTime {
 utctDay :: Day
 utctDayTime :: DiffTime
 data NominalDiffTime
 secondsToNominalDiffTime :: Pico > NominalDiffTime
 nominalDiffTimeToSeconds :: NominalDiffTime > Pico
 nominalDay :: NominalDiffTime
 addUTCTime :: NominalDiffTime > UTCTime > UTCTime
 diffUTCTime :: UTCTime > UTCTime > NominalDiffTime
 getCurrentTime :: IO UTCTime
 getTime_resolution :: DiffTime
Universal Time
Time as measured by the Earth.
newtype UniversalTime Source #
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.
Instances
Absolute intervals
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
secondsToDiffTime :: Integer > DiffTime Source #
Create a DiffTime
which represents an integral number of seconds.
picosecondsToDiffTime :: Integer > DiffTime Source #
Create a DiffTime
from a number of picoseconds.
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.
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.
UTCTime  

Instances
Data UTCTime Source #  
Defined in Data.Time.Clock.Internal.UTCTime gfoldl :: (forall d b. Data d => c (d > b) > d > c b) > (forall g. g > c g) > UTCTime > c UTCTime Source # gunfold :: (forall b r. Data b => c (b > r) > c r) > (forall r. r > c r) > Constr > c UTCTime Source # toConstr :: UTCTime > Constr Source # dataTypeOf :: UTCTime > DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) > Maybe (c UTCTime) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) > Maybe (c UTCTime) Source # gmapT :: (forall b. Data b => b > b) > UTCTime > UTCTime Source # gmapQl :: (r > r' > r) > r > (forall d. Data d => d > r') > UTCTime > r Source # gmapQr :: forall r r'. (r' > r > r) > r > (forall d. Data d => d > r') > UTCTime > r Source # gmapQ :: (forall d. Data d => d > u) > UTCTime > [u] Source # gmapQi :: Int > (forall d. Data d => d > u) > UTCTime > u Source # gmapM :: Monad m => (forall d. Data d => d > m d) > UTCTime > m UTCTime Source # gmapMp :: MonadPlus m => (forall d. Data d => d > m d) > UTCTime > m UTCTime Source # gmapMo :: MonadPlus m => (forall d. Data d => d > m d) > UTCTime > m UTCTime Source #  
Read UTCTime Source #  
Show UTCTime Source #  
NFData UTCTime Source #  
Defined in Data.Time.Clock.Internal.UTCTime  
Eq UTCTime Source #  
Ord UTCTime Source #  
Defined in Data.Time.Clock.Internal.UTCTime  
FormatTime UTCTime Source #  
Defined in Data.Time.Format.Format.Instances  
ISO8601 UTCTime Source # 

Defined in Data.Time.Format.ISO8601  
ParseTime UTCTime Source #  
Defined in Data.Time.Format.Parse.Instances 
data NominalDiffTime Source #
This is a length of time, as measured by UTC. It has a precision of 10^12 s.
Conversion functions such as fromInteger
and realToFrac
will treat it as seconds.
For example, (0.010 :: NominalDiffTime)
corresponds to 10 milliseconds.
It has a precision of one picosecond (= 10^12 s). Enumeration functions will treat it as picoseconds.
It ignores leapseconds, 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 leapsecond intervened.
Instances
secondsToNominalDiffTime :: Pico > NominalDiffTime Source #
Create a NominalDiffTime
from a number of seconds.
Since: time1.9.1
nominalDiffTimeToSeconds :: NominalDiffTime > Pico Source #
Get the seconds in a NominalDiffTime
.
Since: time1.9.1
nominalDay :: NominalDiffTime Source #
One day in NominalDiffTime
.
addUTCTime :: NominalDiffTime > UTCTime > UTCTime Source #
addUTCTime a b = a + b
diffUTCTime :: UTCTime > UTCTime > NominalDiffTime Source #
diffUTCTime a b = a  b
getTime_resolution :: DiffTime Source #
The resolution of getSystemTime
, getCurrentTime
, getPOSIXTime
.
On UNIX systems this uses clock_getres
, which may be wrong on WSL2.