core-program-0.2.12.0: Opinionated Haskell Interoperability
Safe HaskellNone
LanguageHaskell2010

Core.System.External

Description

Re-exports of dependencies from various external libraries.

Synopsis

Time

from Chrono.TimeStamp

Re-exported from Chrono.TimeStamp in chronologique:

newtype TimeStamp #

Number of nanoseconds since the Unix epoch.

The Show instance displays the TimeStamp as seconds with the nanosecond precision expressed as a decimal amount after the interger, ie:

>>> t <- getCurrentTimeNanoseconds
>>> show t
2014-07-31T23:09:35.274387031Z

However this doesn't change the fact the underlying representation counts nanoseconds since epoch:

>>> show $ unTimeStamp t
1406848175274387031

There is a Read instance that is reasonably accommodating.

>>> read "2014-07-31T13:05:04.942089001Z" :: TimeStamp
2014-07-31T13:05:04.942089001Z
>>> read "1406811904.942089001" :: TimeStamp
2014-07-31T13:05:04.942089001Z
>>> read "1406811904" :: TimeStamp
2014-07-31T13:05:04.000000000Z

In case you're wondering, the valid range of nanoseconds that fits into the underlying Int64 is:

>>> show $ minBound :: TimeStamp
1677-09-21T00:12:43.145224192Z
>>> show $ maxBound :: TimeStamp
2262-04-11T23:47:16.854775807Z

so in a quarter millenium's time, yes, you'll have the Y2262 Problem. Haskell code from today will, of course, still be running, so in the mid Twenty-Third century you will need to replace this implementation with something else.

Constructors

TimeStamp 

Fields

Instances

Instances details
Bounded TimeStamp 
Instance details

Defined in Chrono.TimeStamp

Enum TimeStamp 
Instance details

Defined in Chrono.TimeStamp

Eq TimeStamp 
Instance details

Defined in Chrono.TimeStamp

Integral TimeStamp 
Instance details

Defined in Chrono.TimeStamp

Num TimeStamp 
Instance details

Defined in Chrono.TimeStamp

Ord TimeStamp 
Instance details

Defined in Chrono.TimeStamp

Read TimeStamp 
Instance details

Defined in Chrono.TimeStamp

Real TimeStamp 
Instance details

Defined in Chrono.TimeStamp

Show TimeStamp 
Instance details

Defined in Chrono.TimeStamp

Generic TimeStamp 
Instance details

Defined in Chrono.TimeStamp

Associated Types

type Rep TimeStamp :: Type -> Type #

ToJSON TimeStamp 
Instance details

Defined in Chrono.TimeStamp

FromJSON TimeStamp 
Instance details

Defined in Chrono.TimeStamp

Timeable TimeStamp 
Instance details

Defined in Chrono.TimeStamp

Time TimeStamp 
Instance details

Defined in Chrono.TimeStamp

Unbox TimeStamp 
Instance details

Defined in Chrono.TimeStamp

Vector Vector TimeStamp 
Instance details

Defined in Chrono.TimeStamp

MVector MVector TimeStamp 
Instance details

Defined in Chrono.TimeStamp

type Rep TimeStamp 
Instance details

Defined in Chrono.TimeStamp

type Rep TimeStamp = D1 ('MetaData "TimeStamp" "Chrono.TimeStamp" "chronologique-0.3.1.3-78bArwB7lyfNecxH5ho14" 'True) (C1 ('MetaCons "TimeStamp" 'PrefixI 'True) (S1 ('MetaSel ('Just "unTimeStamp") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int64)))
newtype Vector TimeStamp 
Instance details

Defined in Chrono.TimeStamp

newtype MVector s TimeStamp 
Instance details

Defined in Chrono.TimeStamp

getCurrentTimeNanoseconds :: IO TimeStamp #

Get the current system time, expressed as a TimeStamp (which is to say, number of nanoseconds since the Unix epoch).