thyme-0.3.5.5: A faster time library
Safe HaskellNone
LanguageHaskell2010

Data.Thyme.Clock

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

Instances details
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 :: 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

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

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 #

Random UniversalTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Unbox UniversalTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

NFData UniversalTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

rnf :: UniversalTime -> ()

ParseTime UniversalTime Source # 
Instance details

Defined in Data.Thyme.Format

FormatTime UniversalTime Source # 
Instance details

Defined in Data.Thyme.Format

Methods

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

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

Methods

thyme :: Iso' UniversalTime0 UniversalTime Source #

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-EDmpZkZ7yeeIxHU6feh4Qb" '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

Instances details
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

Methods

(==) :: DiffTime -> DiffTime -> Bool

(/=) :: DiffTime -> DiffTime -> Bool

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

Num DiffTime 
Instance details

Defined in Data.Thyme.Time

Ord DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

compare :: DiffTime -> DiffTime -> Ordering

(<) :: DiffTime -> DiffTime -> Bool

(<=) :: DiffTime -> DiffTime -> Bool

(>) :: DiffTime -> DiffTime -> Bool

(>=) :: DiffTime -> DiffTime -> Bool

max :: DiffTime -> DiffTime -> DiffTime

min :: DiffTime -> DiffTime -> DiffTime

Read DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

readsPrec :: Int -> ReadS DiffTime

readList :: ReadS [DiffTime]

readPrec :: ReadPrec DiffTime

readListPrec :: ReadPrec [DiffTime]

Real DiffTime 
Instance details

Defined in Data.Thyme.Time

Methods

toRational :: DiffTime -> Rational

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

Methods

showsPrec :: Int -> DiffTime -> ShowS

show :: DiffTime -> String

showList :: [DiffTime] -> ShowS

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

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

VectorSpace DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Associated Types

type Scalar DiffTime Source #

AdditiveGroup DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

NFData DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

rnf :: DiffTime -> ()

TimeDiff DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

microseconds :: Iso' DiffTime Int64 Source #

Vector Vector DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

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

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

basicLength :: Vector DiffTime -> Int Source #

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

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

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

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

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

Methods

thyme :: Iso' DiffTime0 DiffTime Source #

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-EDmpZkZ7yeeIxHU6feh4Qb" '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

type Scalar DiffTime = Rational
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.

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

Instances details
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 :: 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

Ord UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

compare :: UTCTime -> UTCTime -> Ordering

(<) :: UTCTime -> UTCTime -> Bool

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

(>) :: UTCTime -> UTCTime -> Bool

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

max :: UTCTime -> UTCTime -> UTCTime

min :: UTCTime -> UTCTime -> UTCTime

Read UTCTime 
Instance details

Defined in Data.Thyme.Format

Methods

readsPrec :: Int -> ReadS UTCTime

readList :: ReadS [UTCTime]

readPrec :: ReadPrec UTCTime

readListPrec :: ReadPrec [UTCTime]

Show UTCTime 
Instance details

Defined in Data.Thyme.LocalTime

Methods

showsPrec :: Int -> UTCTime -> ShowS

show :: UTCTime -> String

showList :: [UTCTime] -> ShowS

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

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

ToJSON UTCTime Source # 
Instance details

Defined in Data.Thyme.Format.Aeson

FromJSON UTCTime Source # 
Instance details

Defined in Data.Thyme.Format.Aeson

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

NFData UTCTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

rnf :: 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) Source #

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

basicLength :: Vector UTCTime -> Int Source #

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

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

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

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

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-EDmpZkZ7yeeIxHU6feh4Qb" '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 UTCTime, partly for compatibility with time.

Constructors

UTCTime 

Fields

Instances

Instances details
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 :: forall r r'. (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

Methods

compare :: UTCView -> UTCView -> Ordering

(<) :: UTCView -> UTCView -> Bool

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

(>) :: UTCView -> UTCView -> Bool

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

max :: UTCView -> UTCView -> UTCView

min :: UTCView -> UTCView -> UTCView

Read UTCView 
Instance details

Defined in Data.Thyme.Format

Methods

readsPrec :: Int -> ReadS UTCView

readList :: ReadS [UTCView]

readPrec :: ReadPrec UTCView

readListPrec :: ReadPrec [UTCView]

Show UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

showsPrec :: Int -> UTCView -> ShowS

show :: UTCView -> String

showList :: [UTCView] -> ShowS

Generic UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Associated Types

type Rep UTCView :: Type -> Type

Methods

from :: UTCView -> Rep UTCView x

to :: Rep UTCView x -> UTCView

Unbox UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

NFData UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

rnf :: UTCView -> ()

Vector Vector UTCView Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

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

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

basicLength :: Vector UTCView -> Int Source #

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

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

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

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

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-EDmpZkZ7yeeIxHU6feh4Qb" '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 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

Instances details
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 :: 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

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

Methods

toRational :: NominalDiffTime -> Rational

RealFrac NominalDiffTime 
Instance details

Defined in Data.Thyme.Time

Methods

properFraction :: Integral b => NominalDiffTime -> (b, NominalDiffTime)

truncate :: Integral b => NominalDiffTime -> b

round :: Integral b => NominalDiffTime -> b

ceiling :: Integral b => NominalDiffTime -> b

floor :: Integral b => NominalDiffTime -> b

Show NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

showsPrec :: Int -> NominalDiffTime -> ShowS

show :: NominalDiffTime -> String

showList :: [NominalDiffTime] -> ShowS

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

Arbitrary NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

CoArbitrary NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

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

VectorSpace NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Associated Types

type Scalar NominalDiffTime Source #

AdditiveGroup NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

NFData NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

rnf :: NominalDiffTime -> ()

TimeDiff NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

microseconds :: Iso' NominalDiffTime Int64 Source #

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

Methods

thyme :: Iso' NominalDiffTime0 NominalDiffTime Source #

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-EDmpZkZ7yeeIxHU6feh4Qb" '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

type Scalar NominalDiffTime = Rational
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.

Instances

Instances details
TimeDiff DiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

microseconds :: Iso' DiffTime Int64 Source #

TimeDiff NominalDiffTime Source # 
Instance details

Defined in Data.Thyme.Clock.Internal

Methods

microseconds :: Iso' NominalDiffTime Int64 Source #

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.