chronologique-0.3.1.3: Time to manipulate time

Safe HaskellNone
LanguageHaskell2010

Chrono.TimeStamp

Synopsis

Documentation

newtype TimeStamp Source #

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

Defined in Chrono.TimeStamp

Enum TimeStamp Source # 
Instance details

Defined in Chrono.TimeStamp

Eq TimeStamp Source # 
Instance details

Defined in Chrono.TimeStamp

Integral TimeStamp Source # 
Instance details

Defined in Chrono.TimeStamp

Num TimeStamp Source # 
Instance details

Defined in Chrono.TimeStamp

Ord TimeStamp Source # 
Instance details

Defined in Chrono.TimeStamp

Read TimeStamp Source # 
Instance details

Defined in Chrono.TimeStamp

Real TimeStamp Source # 
Instance details

Defined in Chrono.TimeStamp

Show TimeStamp Source # 
Instance details

Defined in Chrono.TimeStamp

Generic TimeStamp Source # 
Instance details

Defined in Chrono.TimeStamp

Associated Types

type Rep TimeStamp :: Type -> Type #

ToJSON TimeStamp Source # 
Instance details

Defined in Chrono.TimeStamp

FromJSON TimeStamp Source # 
Instance details

Defined in Chrono.TimeStamp

Timeable TimeStamp Source # 
Instance details

Defined in Chrono.TimeStamp

Time TimeStamp Source # 
Instance details

Defined in Chrono.TimeStamp

Unbox TimeStamp Source # 
Instance details

Defined in Chrono.TimeStamp

Vector Vector TimeStamp Source # 
Instance details

Defined in Chrono.TimeStamp

MVector MVector TimeStamp Source # 
Instance details

Defined in Chrono.TimeStamp

type Rep TimeStamp Source # 
Instance details

Defined in Chrono.TimeStamp

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

Defined in Chrono.TimeStamp

newtype MVector s TimeStamp Source # 
Instance details

Defined in Chrono.TimeStamp

getCurrentTimeNanoseconds :: IO TimeStamp Source #

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

data ISO8601_Precise Source #

Format string describing full (nanosecond) precision ISO8601 time,

2014-07-31T23:09:35.274387019Z

Constructors

ISO8601_Precise 
Instances
TimeFormat ISO8601_Precise Source # 
Instance details

Defined in Chrono.Formats