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 UTCView 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).

UTCView is an instance of AffineSpace, with Diff UTCViewNominalDiffTime.

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

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

toConstr :: UniversalTime -> Constr Source #

dataTypeOf :: UniversalTime -> DataType Source #

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

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

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

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

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

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

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

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

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

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

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

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

NFData UniversalTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

rnf :: UniversalTime -> () Source #

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

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

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

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

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

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

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

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

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

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

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

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

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

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-Fg1pPOWWkee1p55oP1P4W4" True) (C1 (MetaCons "UniversalRep" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 NominalDiffTime)))
newtype Vector UniversalTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

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

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

toConstr :: DiffTime -> Constr Source #

dataTypeOf :: DiffTime -> DataType Source #

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

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

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

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

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

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

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

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

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

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

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

Defined in Data.Thyme.Time

RealFrac DiffTime Source # 
Instance details

Defined in Data.Thyme.Time

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

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

NFData DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

rnf :: DiffTime -> () Source #

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

VectorSpace DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Associated Types

type Scalar DiffTime :: Type Source #

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

MVector MVector DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

basicLength :: MVector s DiffTime -> Int Source #

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

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

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

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

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

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

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

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

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

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

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

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

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-Fg1pPOWWkee1p55oP1P4W4" True) (C1 (MetaCons "DiffTime" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Micro)))
newtype 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

newtype 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.

UTCView is an instance of AffineSpace, with

type Diff UTCView = NominalDiffTime

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

Performance
Internally this is a 64-bit count of microseconds since the MJD epoch, so .+^, .-^ and .-. ought to be fairly fast.
Issues
UTCView 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

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

Ord UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Read UTCTime Source # 
Instance details

Defined in Data.Thyme.Format

Show UTCTime Source # 
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 :: Type -> Type Source #

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

ToJSON UTCTime Source # 
Instance details

Defined in Data.Thyme.Format.Aeson

FromJSON UTCTime Source # 
Instance details

Defined in Data.Thyme.Format.Aeson

NFData UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

rnf :: UTCTime -> () Source #

Random UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

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

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

MVector MVector UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

basicLength :: MVector s UTCTime -> Int Source #

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

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

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

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

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

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

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

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

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

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

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

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

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-Fg1pPOWWkee1p55oP1P4W4" True) (C1 (MetaCons "UTCRep" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 NominalDiffTime)))
newtype Vector UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

type Diff UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

newtype MVector s UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

data UTCView Source #

Unpacked UTCView, partly for compatibility with time.

Constructors

UTCTime 

Fields

Instances
Eq UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

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

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

toConstr :: UTCView -> Constr Source #

dataTypeOf :: UTCView -> DataType Source #

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

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

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

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

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

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

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

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

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

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

Ord UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Read UTCView Source # 
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 :: Type -> Type Source #

NFData UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

rnf :: UTCView -> () Source #

Unbox UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Vector Vector UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

MVector MVector UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

basicLength :: MVector s UTCView -> Int Source #

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

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

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

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

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

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

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

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

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

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

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

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

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-Fg1pPOWWkee1p55oP1P4W4" False) (C1 (MetaCons "UTCTime" PrefixI True) (S1 (MetaSel (Just "utctDay") SourceUnpack SourceStrict DecidedStrict) (Rec0 Day) :*: S1 (MetaSel (Just "utctDayTime") SourceUnpack SourceStrict DecidedStrict) (Rec0 DiffTime)))
newtype Vector UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

newtype MVector s UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

utcTime :: Iso' UTCTime UTCView Source #

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

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

toConstr :: NominalDiffTime -> Constr Source #

dataTypeOf :: NominalDiffTime -> DataType Source #

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

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

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

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

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

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

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

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

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

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

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

Defined in Data.Thyme.Time

RealFrac NominalDiffTime Source # 
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 :: Type -> Type Source #

Arbitrary NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

CoArbitrary NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

NFData NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

rnf :: NominalDiffTime -> () Source #

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

VectorSpace NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Associated Types

type Scalar NominalDiffTime :: Type Source #

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

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

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

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

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

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

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

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

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

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

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

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

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

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-Fg1pPOWWkee1p55oP1P4W4" True) (C1 (MetaCons "NominalDiffTime" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Micro)))
newtype 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

newtype 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?

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 UTCView.

_utctDayTime :: Lens' UTCTime DiffTime Source #

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