chronologique-0.3.1.1: Time to manipulate time

Safe HaskellNone
LanguageHaskell2010

Chrono.TimeStamp

Synopsis

Documentation

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

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.1-1VluMm7psdG1LJ9T3pFV1K" True) (C1 (MetaCons "TimeStamp" PrefixI True) (S1 (MetaSel (Just "unTimeStamp") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int64)))
data Vector TimeStamp # 
Instance details

Defined in Chrono.TimeStamp

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

data ISO8601_Precise #

Format string describing full (nanosecond) precision ISO8601 time,

2014-07-31T23:09:35.274387019Z

Constructors

ISO8601_Precise 
Instances
TimeFormat ISO8601_Precise # 
Instance details

Defined in Chrono.Formats