thyme-0.3.5.5: A faster time library

Safe HaskellNone
LanguageHaskell2010

Data.Thyme.Clock

Contents

Description

Types and functions for UTC and UT1.

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

Num, Real, Fractional and RealFrac instances for DiffTime and NominalDiffTime are only available by importing Data.Thyme.Time. In their stead are instances of AdditiveGroup, HasBasis and VectorSpace, with Scalar DiffTimeScalar NominalDiffTimeRational.

Using fromSeconds and toSeconds to convert between TimeDiffs and other numeric types. If you really must coerce between DiffTime and NominalDiffTime, view (microseconds . from microseconds).

UTCTime is an instance of AffineSpace, with Diff UTCTimeNominalDiffTime.

UTCTime is not Y294K-compliant. Please file a bug report on GitHub when this becomes a problem.

Synopsis

Universal Time

data UniversalTime Source #

The principal form of universal time, namely UT1.

UniversalTime is defined by the rotation of the Earth around its axis relative to the Sun. Thus the length of a day by this definition varies from one to the next, and is never exactly 86400 SI seconds unlike TAI or AbsoluteTime. The difference between UT1 and UTC is DUT1.

Instances
Bounded UniversalTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Enum UniversalTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Eq UniversalTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Data UniversalTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

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 :: (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 #

Ord UniversalTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Ix UniversalTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Generic UniversalTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Associated Types

type Rep UniversalTime :: * -> * #

Arbitrary UniversalTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

CoArbitrary UniversalTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

coarbitrary :: UniversalTime -> Gen b -> Gen b #

NFData UniversalTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

rnf :: UniversalTime -> () #

Random UniversalTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Unbox UniversalTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

ParseTime UniversalTime Source # 
Instance details

Defined in Data.Thyme.Format

FormatTime UniversalTime Source # 
Instance details

Defined in Data.Thyme.Format

Vector Vector UniversalTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

MVector MVector UniversalTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

basicLength :: MVector s UniversalTime -> Int #

basicUnsafeSlice :: Int -> Int -> MVector s UniversalTime -> MVector s UniversalTime #

basicOverlaps :: MVector s UniversalTime -> MVector s UniversalTime -> Bool #

basicUnsafeNew :: PrimMonad m => Int -> m (MVector (PrimState m) UniversalTime) #

basicInitialize :: PrimMonad m => MVector (PrimState m) UniversalTime -> m () #

basicUnsafeReplicate :: PrimMonad m => Int -> UniversalTime -> m (MVector (PrimState m) UniversalTime) #

basicUnsafeRead :: PrimMonad m => MVector (PrimState m) UniversalTime -> Int -> m UniversalTime #

basicUnsafeWrite :: PrimMonad m => MVector (PrimState m) UniversalTime -> Int -> UniversalTime -> m () #

basicClear :: PrimMonad m => MVector (PrimState m) UniversalTime -> m () #

basicSet :: PrimMonad m => MVector (PrimState m) UniversalTime -> UniversalTime -> m () #

basicUnsafeCopy :: PrimMonad m => MVector (PrimState m) UniversalTime -> MVector (PrimState m) UniversalTime -> m () #

basicUnsafeMove :: PrimMonad m => MVector (PrimState m) UniversalTime -> MVector (PrimState m) UniversalTime -> m () #

basicUnsafeGrow :: PrimMonad m => MVector (PrimState m) UniversalTime -> Int -> m (MVector (PrimState m) UniversalTime) #

Thyme UniversalTime UniversalTime Source # 
Instance details

Defined in Data.Thyme.Time.Core

type Rep UniversalTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

type Rep UniversalTime = D1 (MetaData "UniversalTime" "Data.Thyme.Clock.Internal" "thyme-0.3.5.5-JHgKRAeOg9fE1a15UHy1aj" True) (C1 (MetaCons "UniversalRep" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 NominalDiffTime)))
data Vector UniversalTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

data MVector s UniversalTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

modJulianDate :: Iso' UniversalTime Rational Source #

View UniversalTime as a fractional number of days since the Modified Julian Date epoch.

Absolute intervals

data DiffTime Source #

An absolute time interval as measured by a clock.

DiffTime forms an AdditiveGroup―so can be added using ^+^ (or ^-^ for subtraction), and also an instance of VectorSpace―so can be scaled using *^, where

type Scalar DiffTime = Rational
Instances
Bounded DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Enum DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Eq DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Fractional DiffTime # 
Instance details

Defined in Data.Thyme.Time

Data DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

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 :: (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 #

Num DiffTime # 
Instance details

Defined in Data.Thyme.Time

Ord DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Read DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Real DiffTime # 
Instance details

Defined in Data.Thyme.Time

RealFrac DiffTime # 
Instance details

Defined in Data.Thyme.Time

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

Defined in Data.Thyme.Clock.Internal

Ix DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Generic DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Associated Types

type Rep DiffTime :: * -> * #

Methods

from :: DiffTime -> Rep DiffTime x #

to :: Rep DiffTime x -> DiffTime #

Arbitrary DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

CoArbitrary DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

coarbitrary :: DiffTime -> Gen b -> Gen b #

NFData DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

rnf :: DiffTime -> () #

Random DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Unbox DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

HasBasis DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Associated Types

type Basis DiffTime :: * #

VectorSpace DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Associated Types

type Scalar DiffTime :: * #

AdditiveGroup DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

TimeDiff DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Vector Vector DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

basicUnsafeFreeze :: PrimMonad m => Mutable Vector (PrimState m) DiffTime -> m (Vector DiffTime) #

basicUnsafeThaw :: PrimMonad m => Vector DiffTime -> m (Mutable Vector (PrimState m) DiffTime) #

basicLength :: Vector DiffTime -> Int #

basicUnsafeSlice :: Int -> Int -> Vector DiffTime -> Vector DiffTime #

basicUnsafeIndexM :: Monad m => Vector DiffTime -> Int -> m DiffTime #

basicUnsafeCopy :: PrimMonad m => Mutable Vector (PrimState m) DiffTime -> Vector DiffTime -> m () #

elemseq :: Vector DiffTime -> DiffTime -> b -> b #

MVector MVector DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

basicLength :: MVector s DiffTime -> Int #

basicUnsafeSlice :: Int -> Int -> MVector s DiffTime -> MVector s DiffTime #

basicOverlaps :: MVector s DiffTime -> MVector s DiffTime -> Bool #

basicUnsafeNew :: PrimMonad m => Int -> m (MVector (PrimState m) DiffTime) #

basicInitialize :: PrimMonad m => MVector (PrimState m) DiffTime -> m () #

basicUnsafeReplicate :: PrimMonad m => Int -> DiffTime -> m (MVector (PrimState m) DiffTime) #

basicUnsafeRead :: PrimMonad m => MVector (PrimState m) DiffTime -> Int -> m DiffTime #

basicUnsafeWrite :: PrimMonad m => MVector (PrimState m) DiffTime -> Int -> DiffTime -> m () #

basicClear :: PrimMonad m => MVector (PrimState m) DiffTime -> m () #

basicSet :: PrimMonad m => MVector (PrimState m) DiffTime -> DiffTime -> m () #

basicUnsafeCopy :: PrimMonad m => MVector (PrimState m) DiffTime -> MVector (PrimState m) DiffTime -> m () #

basicUnsafeMove :: PrimMonad m => MVector (PrimState m) DiffTime -> MVector (PrimState m) DiffTime -> m () #

basicUnsafeGrow :: PrimMonad m => MVector (PrimState m) DiffTime -> Int -> m (MVector (PrimState m) DiffTime) #

Thyme DiffTime DiffTime Source # 
Instance details

Defined in Data.Thyme.Time.Core

type Rep DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

type Rep DiffTime = D1 (MetaData "DiffTime" "Data.Thyme.Clock.Internal" "thyme-0.3.5.5-JHgKRAeOg9fE1a15UHy1aj" True) (C1 (MetaCons "DiffTime" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Micro)))
data Vector DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

type Basis DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

type Basis DiffTime = ()
type Scalar DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

data MVector s DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

UTC

data UTCTime Source #

Coördinated universal time: the most common form of universal time for civil timekeeping. It is synchronised with AbsoluteTime and both tick in increments of SI seconds, but UTC includes occasional leap-seconds so that it does not drift too far from UniversalTime.

UTCTime is an instance of AffineSpace, with

type Diff UTCTime = NominalDiffTime

Use .+^ to add (or .-^ to subtract) time intervals of type NominalDiffTime, and .-. to get the interval between UTCTimes.

Performance
Internally this is a 64-bit count of microseconds since the MJD epoch, so .+^, .-^ and .-. ought to be fairly fast.
Issues
UTCTime currently cannot represent leap seconds.
Instances
Bounded UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Enum UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Eq UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

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

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

Data UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

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 :: (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 #

Ord UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Read UTCTime # 
Instance details

Defined in Data.Thyme.Format

Show UTCTime # 
Instance details

Defined in Data.Thyme.LocalTime

Ix UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Generic UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Associated Types

type Rep UTCTime :: * -> * #

Methods

from :: UTCTime -> Rep UTCTime x #

to :: Rep UTCTime x -> UTCTime #

Arbitrary UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

CoArbitrary UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

coarbitrary :: UTCTime -> Gen b -> Gen b #

ToJSON UTCTime # 
Instance details

Defined in Data.Thyme.Format.Aeson

FromJSON UTCTime # 
Instance details

Defined in Data.Thyme.Format.Aeson

NFData UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

rnf :: UTCTime -> () #

Random UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

randomR :: RandomGen g => (UTCTime, UTCTime) -> g -> (UTCTime, g) #

random :: RandomGen g => g -> (UTCTime, g) #

randomRs :: RandomGen g => (UTCTime, UTCTime) -> g -> [UTCTime] #

randoms :: RandomGen g => g -> [UTCTime] #

randomRIO :: (UTCTime, UTCTime) -> IO UTCTime #

randomIO :: IO UTCTime #

Unbox UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

AffineSpace UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Associated Types

type Diff UTCTime :: * #

ParseTime UTCTime Source # 
Instance details

Defined in Data.Thyme.Format

FormatTime UTCTime Source # 
Instance details

Defined in Data.Thyme.Format

Methods

showsTime :: TimeLocale -> UTCTime -> (Char -> ShowS) -> Char -> ShowS Source #

Vector Vector UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

basicUnsafeFreeze :: PrimMonad m => Mutable Vector (PrimState m) UTCTime -> m (Vector UTCTime) #

basicUnsafeThaw :: PrimMonad m => Vector UTCTime -> m (Mutable Vector (PrimState m) UTCTime) #

basicLength :: Vector UTCTime -> Int #

basicUnsafeSlice :: Int -> Int -> Vector UTCTime -> Vector UTCTime #

basicUnsafeIndexM :: Monad m => Vector UTCTime -> Int -> m UTCTime #

basicUnsafeCopy :: PrimMonad m => Mutable Vector (PrimState m) UTCTime -> Vector UTCTime -> m () #

elemseq :: Vector UTCTime -> UTCTime -> b -> b #

MVector MVector UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

basicLength :: MVector s UTCTime -> Int #

basicUnsafeSlice :: Int -> Int -> MVector s UTCTime -> MVector s UTCTime #

basicOverlaps :: MVector s UTCTime -> MVector s UTCTime -> Bool #

basicUnsafeNew :: PrimMonad m => Int -> m (MVector (PrimState m) UTCTime) #

basicInitialize :: PrimMonad m => MVector (PrimState m) UTCTime -> m () #

basicUnsafeReplicate :: PrimMonad m => Int -> UTCTime -> m (MVector (PrimState m) UTCTime) #

basicUnsafeRead :: PrimMonad m => MVector (PrimState m) UTCTime -> Int -> m UTCTime #

basicUnsafeWrite :: PrimMonad m => MVector (PrimState m) UTCTime -> Int -> UTCTime -> m () #

basicClear :: PrimMonad m => MVector (PrimState m) UTCTime -> m () #

basicSet :: PrimMonad m => MVector (PrimState m) UTCTime -> UTCTime -> m () #

basicUnsafeCopy :: PrimMonad m => MVector (PrimState m) UTCTime -> MVector (PrimState m) UTCTime -> m () #

basicUnsafeMove :: PrimMonad m => MVector (PrimState m) UTCTime -> MVector (PrimState m) UTCTime -> m () #

basicUnsafeGrow :: PrimMonad m => MVector (PrimState m) UTCTime -> Int -> m (MVector (PrimState m) UTCTime) #

Thyme UTCTime UTCTime Source # 
Instance details

Defined in Data.Thyme.Time.Core

Methods

thyme :: Iso' UTCTime0 UTCTime Source #

type Rep UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

type Rep UTCTime = D1 (MetaData "UTCTime" "Data.Thyme.Clock.Internal" "thyme-0.3.5.5-JHgKRAeOg9fE1a15UHy1aj" True) (C1 (MetaCons "UTCRep" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 NominalDiffTime)))
data Vector UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

type Diff UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

data MVector s UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

data UTCView Source #

Unpacked UTCTime, partly for compatibility with time.

Constructors

UTCTime 

Fields

Instances
Eq UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

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

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

Data UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

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

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

toConstr :: UTCView -> Constr #

dataTypeOf :: UTCView -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Read UTCView # 
Instance details

Defined in Data.Thyme.Format

Show UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Generic UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Associated Types

type Rep UTCView :: * -> * #

Methods

from :: UTCView -> Rep UTCView x #

to :: Rep UTCView x -> UTCView #

NFData UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

rnf :: UTCView -> () #

Unbox UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Vector Vector UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

basicUnsafeFreeze :: PrimMonad m => Mutable Vector (PrimState m) UTCView -> m (Vector UTCView) #

basicUnsafeThaw :: PrimMonad m => Vector UTCView -> m (Mutable Vector (PrimState m) UTCView) #

basicLength :: Vector UTCView -> Int #

basicUnsafeSlice :: Int -> Int -> Vector UTCView -> Vector UTCView #

basicUnsafeIndexM :: Monad m => Vector UTCView -> Int -> m UTCView #

basicUnsafeCopy :: PrimMonad m => Mutable Vector (PrimState m) UTCView -> Vector UTCView -> m () #

elemseq :: Vector UTCView -> UTCView -> b -> b #

MVector MVector UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

basicLength :: MVector s UTCView -> Int #

basicUnsafeSlice :: Int -> Int -> MVector s UTCView -> MVector s UTCView #

basicOverlaps :: MVector s UTCView -> MVector s UTCView -> Bool #

basicUnsafeNew :: PrimMonad m => Int -> m (MVector (PrimState m) UTCView) #

basicInitialize :: PrimMonad m => MVector (PrimState m) UTCView -> m () #

basicUnsafeReplicate :: PrimMonad m => Int -> UTCView -> m (MVector (PrimState m) UTCView) #

basicUnsafeRead :: PrimMonad m => MVector (PrimState m) UTCView -> Int -> m UTCView #

basicUnsafeWrite :: PrimMonad m => MVector (PrimState m) UTCView -> Int -> UTCView -> m () #

basicClear :: PrimMonad m => MVector (PrimState m) UTCView -> m () #

basicSet :: PrimMonad m => MVector (PrimState m) UTCView -> UTCView -> m () #

basicUnsafeCopy :: PrimMonad m => MVector (PrimState m) UTCView -> MVector (PrimState m) UTCView -> m () #

basicUnsafeMove :: PrimMonad m => MVector (PrimState m) UTCView -> MVector (PrimState m) UTCView -> m () #

basicUnsafeGrow :: PrimMonad m => MVector (PrimState m) UTCView -> Int -> m (MVector (PrimState m) UTCView) #

Thyme UTCTime UTCView Source # 
Instance details

Defined in Data.Thyme.Time.Core

Methods

thyme :: Iso' UTCTime UTCView Source #

type Rep UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

type Rep UTCView = D1 (MetaData "UTCView" "Data.Thyme.Clock.Internal" "thyme-0.3.5.5-JHgKRAeOg9fE1a15UHy1aj" False) (C1 (MetaCons "UTCTime" PrefixI True) (S1 (MetaSel (Just "utctDay") SourceUnpack SourceStrict DecidedStrict) (Rec0 Day) :*: S1 (MetaSel (Just "utctDayTime") SourceUnpack SourceStrict DecidedStrict) (Rec0 DiffTime)))
data Vector UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

data MVector s UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

utcTime :: Iso' UTCTime UTCView Source #

View UTCTime as an UTCView, comprising a Day along with a DiffTime offset since midnight.

This is an improper lens: utctDayTime offsets outside the range of [zeroV, posixDayLength) will carry over into the day part, with the expected behaviour.

data NominalDiffTime Source #

A time interval as measured by UTC, that does not take leap-seconds into account.

For instance, the difference between 23:59:59 and 00:00:01 on the following day is always 2 seconds of NominalDiffTime, regardless of whether a leap-second took place.

NominalDiffTime forms an AdditiveGroup―so can be added using ^+^ (or ^-^ for subtraction), and also an instance of VectorSpace―so can be scaled using *^, where

type Scalar NominalDiffTime = Rational
Instances
Bounded NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Enum NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Eq NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Fractional NominalDiffTime # 
Instance details

Defined in Data.Thyme.Time

Data NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

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 :: (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 #

Num NominalDiffTime # 
Instance details

Defined in Data.Thyme.Time

Ord NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Read NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Real NominalDiffTime # 
Instance details

Defined in Data.Thyme.Time

RealFrac NominalDiffTime # 
Instance details

Defined in Data.Thyme.Time

Show NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Ix NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Generic NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Associated Types

type Rep NominalDiffTime :: * -> * #

Arbitrary NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

CoArbitrary NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

coarbitrary :: NominalDiffTime -> Gen b -> Gen b #

NFData NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

rnf :: NominalDiffTime -> () #

Random NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Unbox NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

HasBasis NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Associated Types

type Basis NominalDiffTime :: * #

VectorSpace NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Associated Types

type Scalar NominalDiffTime :: * #

AdditiveGroup NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

TimeDiff NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Vector Vector NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

MVector MVector NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

basicLength :: MVector s NominalDiffTime -> Int #

basicUnsafeSlice :: Int -> Int -> MVector s NominalDiffTime -> MVector s NominalDiffTime #

basicOverlaps :: MVector s NominalDiffTime -> MVector s NominalDiffTime -> Bool #

basicUnsafeNew :: PrimMonad m => Int -> m (MVector (PrimState m) NominalDiffTime) #

basicInitialize :: PrimMonad m => MVector (PrimState m) NominalDiffTime -> m () #

basicUnsafeReplicate :: PrimMonad m => Int -> NominalDiffTime -> m (MVector (PrimState m) NominalDiffTime) #

basicUnsafeRead :: PrimMonad m => MVector (PrimState m) NominalDiffTime -> Int -> m NominalDiffTime #

basicUnsafeWrite :: PrimMonad m => MVector (PrimState m) NominalDiffTime -> Int -> NominalDiffTime -> m () #

basicClear :: PrimMonad m => MVector (PrimState m) NominalDiffTime -> m () #

basicSet :: PrimMonad m => MVector (PrimState m) NominalDiffTime -> NominalDiffTime -> m () #

basicUnsafeCopy :: PrimMonad m => MVector (PrimState m) NominalDiffTime -> MVector (PrimState m) NominalDiffTime -> m () #

basicUnsafeMove :: PrimMonad m => MVector (PrimState m) NominalDiffTime -> MVector (PrimState m) NominalDiffTime -> m () #

basicUnsafeGrow :: PrimMonad m => MVector (PrimState m) NominalDiffTime -> Int -> m (MVector (PrimState m) NominalDiffTime) #

Thyme NominalDiffTime NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Time.Core

type Rep NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

type Rep NominalDiffTime = D1 (MetaData "NominalDiffTime" "Data.Thyme.Clock.Internal" "thyme-0.3.5.5-JHgKRAeOg9fE1a15UHy1aj" True) (C1 (MetaCons "NominalDiffTime" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Micro)))
data Vector NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

type Basis NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

type Scalar NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

data MVector s NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

getCurrentTime :: IO UTCTime Source #

Get the current UTC time from the system clock.

Time interval conversion

class (HasBasis t, Basis t ~ (), Scalar t ~ Rational) => TimeDiff t where Source #

Time intervals, encompassing both DiffTime and NominalDiffTime.

Issues
Still affected by http://hackage.haskell.org/trac/ghc/ticket/7611?

Minimal complete definition

microseconds

Methods

microseconds :: Iso' t Int64 Source #

Escape hatch; avoid.

toSeconds :: (TimeDiff t, Fractional n) => t -> n Source #

Convert a time interval to some Fractional type.

fromSeconds :: (Real n, TimeDiff t) => n -> t Source #

Make a time interval from some Real type.

Performance
Try to make sure n is one of Float, Double, Int, Int64 or Integer, for which rewrite RULES have been provided.

toSeconds' :: TimeDiff t => t -> Rational Source #

Type-restricted toSeconds to avoid constraint-defaulting warnings.

fromSeconds' :: TimeDiff t => Rational -> t Source #

Type-restricted fromSeconds to avoid constraint-defaulting warnings.

Lenses

_utctDay :: Lens' UTCTime Day Source #

Lens' for the Day component of an UTCTime.

_utctDayTime :: Lens' UTCTime DiffTime Source #

Lens' for the time-of-day component of an UTCTime.