Safe Haskell | None |
---|---|
Language | Haskell2010 |
Unix timestamps of varying granularity.
- class Unix u where
- newtype UnixDate = UnixDate {}
- newtype UnixDateTime = UnixDateTime {}
- newtype UnixDateTimeMillis = UnixDateTimeMillis {}
- newtype UnixDateTimeMicros = UnixDateTimeMicros {}
- data UnixDateTimeNanos = UnixDateTimeNanos {
- _uni_nan_base :: !Int64
- _uni_nan_nano :: !Int16
- data UnixDateTimePicos = UnixDateTimePicos {
- _uni_pic_base :: !Int64
- _uni_pic_pico :: !Int32
- createUnixDate :: Year -> Month -> Day -> UnixDate
- createUnixDateTime :: Year -> Month -> Day -> Hour -> Minute -> Second -> UnixDateTime
- createUnixDateTimeMillis :: Year -> Month -> Day -> Hour -> Minute -> Second -> Millis -> UnixDateTimeMillis
- createUnixDateTimeMicros :: Year -> Month -> Day -> Hour -> Minute -> Second -> Micros -> UnixDateTimeMicros
- createUnixDateTimeNanos :: Year -> Month -> Day -> Hour -> Minute -> Second -> Nanos -> UnixDateTimeNanos
- createUnixDateTimePicos :: Year -> Month -> Day -> Hour -> Minute -> Second -> Picos -> UnixDateTimePicos
- getCurrentUnixDate :: IO UnixDate
- getCurrentUnixDateTime :: IO UnixDateTime
- getCurrentUnixDateTimeMillis :: IO UnixDateTimeMillis
- getCurrentUnixDateTimeMicros :: IO UnixDateTimeMicros
- getCurrentUnixDateTimeNanos :: IO UnixDateTimeNanos
- getCurrentUnixDateTimePicos :: IO UnixDateTimePicos
- prettyUnixDate :: (Unix d, Date d) => d -> String
- prettyUnixDateTime :: (Unix dt, DateTime dt) => dt -> String
Unix Class
The Unix timestamp type class.
Unix Timestamps
Days since Unix epoch.
newtype UnixDateTime Source
Seconds since Unix epoch (excluding leap seconds).
newtype UnixDateTimeMillis Source
Milliseconds since Unix epoch (excluding leap seconds).
newtype UnixDateTimeMicros Source
Microseconds since Unix epoch (excluding leap seconds).
data UnixDateTimeNanos Source
Nanoseconds since Unix epoch (excluding leap seconds).
data UnixDateTimePicos Source
Picoseconds since Unix epoch (excluding leap seconds).
Create Unix Timestamps
createUnixDate :: Year -> Month -> Day -> UnixDate Source
Create a Unix date.
>>> createUnixDate 2013 November 03 2013-11-03
createUnixDateTime :: Year -> Month -> Day -> Hour -> Minute -> Second -> UnixDateTime Source
Create a Unix date and time.
>>> createUnixDateTime 2012 April 27 07 37 30 2012-04-27 07:37:30
createUnixDateTimeMillis :: Year -> Month -> Day -> Hour -> Minute -> Second -> Millis -> UnixDateTimeMillis Source
Create a Unix date and time with millisecond granularity.
>>> createUnixDateTimeMillis 2014 February 02 08 52 37 983 2014-02-02 08:52:37.983
createUnixDateTimeMicros :: Year -> Month -> Day -> Hour -> Minute -> Second -> Micros -> UnixDateTimeMicros Source
Create a Unix date and time with microsecond granularity.
>>> createUnixDateTimeMicros 2011 January 22 17 34 13 138563 2011-01-22 17:34:13.138563
createUnixDateTimeNanos :: Year -> Month -> Day -> Hour -> Minute -> Second -> Nanos -> UnixDateTimeNanos Source
Create a Unix date and time with nanosecond granularity.
>>> createUnixDateTimeNanos 2012 June 28 01 30 35 688279651 2012-06-28 01:30:35.688279651
createUnixDateTimePicos :: Year -> Month -> Day -> Hour -> Minute -> Second -> Picos -> UnixDateTimePicos Source
Create a Unix date and time with picosecond granularity.
>>> createUnixDateTimePicos 2014 August 02 10 57 54 809479393286 2014-08-02 10:57:54.809479393286
Get Current Unix Timestamps
getCurrentUnixDate :: IO UnixDate Source
Get the current Unix date from the system clock.
>>> getCurrentUnixDate 2013-11-03
getCurrentUnixDateTime :: IO UnixDateTime Source
Get the current Unix date and time from the system clock.
>>> getCurrentUnixDateTime 2013-11-03 23:09:38
getCurrentUnixDateTimeMillis :: IO UnixDateTimeMillis Source
Get the current Unix date and time with millisecond granularity from the system clock.
>>> getCurrentUnixDateTimeMillis 2013-11-03 23:09:51.986
getCurrentUnixDateTimeMicros :: IO UnixDateTimeMicros Source
Get the current Unix date and time with microsecond granularity from the system clock.
>>> getCurrentUnixDateTimeMicros 2013-11-03 23:10:06.498559
getCurrentUnixDateTimeNanos :: IO UnixDateTimeNanos Source
Get the current Unix date and time with nanosecond granularity from the system clock.
>>> getCurrentUnixDateTimeNanos 2013-11-03 23:10:23.697893000
Note that this functions calls gettimeofday
behind the scenes. Therefore, the resultant
timestamp will have nanosecond granularity, but only microsecond resolution.
getCurrentUnixDateTimePicos :: IO UnixDateTimePicos Source
Get the current Unix date and time with picosecond granularity from the system clock.
>>> getCurrentUnixDateTimePicos 2013-11-03 23:10:44.633032000000
Note that this functions calls gettimeofday
behind the scenes. Therefore, the resultant
timestamp will have picosecond granularity, but only microsecond resolution.
Pretty Unix Timestamps
prettyUnixDate :: (Unix d, Date d) => d -> String Source
Show a Unix date as a pretty string.
>>> prettyUnixDate $ createUnixDate 2014 August 16 "Saturday, August 16th, 2014"
prettyUnixDateTime :: (Unix dt, DateTime dt) => dt -> String Source
Show a Unix date and time as a pretty string.
>>> getCurrentUnixDateTime >>= return . prettyUnixDateTime "6:44 AM, Tuesday, December 31st, 2013"