Safe Haskell | None |
---|
Unix timestamps of varying granularity.
- class Unix u where
- newtype UnixDate = UnixDate {}
- newtype UnixTime = UnixTime {}
- newtype UnixTimeMillis = UnixTimeMillis {}
- newtype UnixTimeMicros = UnixTimeMicros {}
- newtype UnixTimeNanos = UnixTimeNanos {}
- newtype UnixTimePicos = UnixTimePicos {}
- newtype UnixDateTime = UnixDateTime {}
- newtype UnixDateTimeMillis = UnixDateTimeMillis {}
- newtype UnixDateTimeMicros = UnixDateTimeMicros {}
- data UnixDateTimeNanos = UnixDateTimeNanos {
- _udt_nan_base :: !Int64
- _udt_nan_nano :: !Int16
- data UnixDateTimePicos = UnixDateTimePicos {
- _udt_pic_base :: !Int64
- _udt_pic_pico :: !Int32
- createUnixDate :: Year -> Month -> Day -> UnixDate
- createUnixTime :: Hour -> Minute -> Second -> UnixTime
- createUnixTimeMillis :: Hour -> Minute -> Second -> Millis -> UnixTimeMillis
- createUnixTimeMicros :: Hour -> Minute -> Second -> Micros -> UnixTimeMicros
- createUnixTimeNanos :: Hour -> Minute -> Second -> Nanos -> UnixTimeNanos
- createUnixTimePicos :: Hour -> Minute -> Second -> Picos -> UnixTimePicos
- 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
- getCurrentUnixTime :: IO UnixTime
- getCurrentUnixTimeMillis :: IO UnixTimeMillis
- getCurrentUnixTimeMicros :: IO UnixTimeMicros
- getCurrentUnixTimeNanos :: IO UnixTimeNanos
- getCurrentUnixTimePicos :: IO UnixTimePicos
- getCurrentUnixDateTime :: IO UnixDateTime
- getCurrentUnixDateTimeMillis :: IO UnixDateTimeMillis
- getCurrentUnixDateTimeMicros :: IO UnixDateTimeMicros
- getCurrentUnixDateTimeNanos :: IO UnixDateTimeNanos
- getCurrentUnixDateTimePicos :: IO UnixDateTimePicos
- prettyUnixDate :: (Unix d, Date d) => d -> String
- prettyUnixTime :: (Unix t, Time t) => t -> String
- prettyUnixDateTime :: (Unix dt, DateTime dt) => dt -> String
Unix Class
The Unix timestamp type class.
Get the base component of a Unix timestamp.
Get the normalized base component of a Unix timestamp.
Unix Timestamps
Days since Unix epoch.
Seconds since midnight (excluding leap seconds).
newtype UnixTimeMillis Source
Milliseconds since midnight (excluding leap seconds).
newtype UnixTimeMicros Source
Microseconds since midnight (excluding leap seconds).
newtype UnixTimeNanos Source
Nanoseconds since midnight (excluding leap seconds).
newtype UnixTimePicos Source
Picoseconds since midnight (excluding leap seconds).
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 -> UnixDateSource
Create a Unix date.
>>> createUnixDate 2013 November 3 2013-11-03
createUnixTime :: Hour -> Minute -> Second -> UnixTimeSource
Create a Unix time.
>>> createUnixTime 4 52 7 04:52:07
createUnixTimeMillis :: Hour -> Minute -> Second -> Millis -> UnixTimeMillisSource
Create a Unix time with millisecond granularity.
>>> createUnixTimeMillis 15 22 47 2 15:22:47.002
createUnixTimeMicros :: Hour -> Minute -> Second -> Micros -> UnixTimeMicrosSource
Create a Unix time with microsecond granularity.
>>> createUnixTimeMicros 10 6 33 575630 10:06:33.575630
createUnixTimeNanos :: Hour -> Minute -> Second -> Nanos -> UnixTimeNanosSource
Create a Unix time with nanosecond granularity.
>>> createUnixTimeNanos 23 19 54 465837593 23:19:54.465837593
createUnixTimePicos :: Hour -> Minute -> Second -> Picos -> UnixTimePicosSource
Create a Unix time with picosecond granularity.
>>> createUnixTimePicos 17 25 36 759230473534 17:25:36.759230473534
createUnixDateTime :: Year -> Month -> Day -> Hour -> Minute -> Second -> UnixDateTimeSource
Create a Unix date and time.
>>> createUnixDateTime 2012 April 27 7 37 30 2012-04-27 07:37:30
createUnixDateTimeMillis :: Year -> Month -> Day -> Hour -> Minute -> Second -> Millis -> UnixDateTimeMillisSource
Create a Unix date and time with millisecond granularity.
>>> createUnixDateTimeMillis 2014 February 2 8 52 37 983 2014-02-02 08:52:37.983
createUnixDateTimeMicros :: Year -> Month -> Day -> Hour -> Minute -> Second -> Micros -> UnixDateTimeMicrosSource
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 -> UnixDateTimeNanosSource
Create a Unix date and time with nanosecond granularity.
>>> createUnixDateTimeNanos 2012 June 28 1 30 35 688279651 2012-06-28 01:30:35.688279651
createUnixDateTimePicos :: Year -> Month -> Day -> Hour -> Minute -> Second -> Picos -> UnixDateTimePicosSource
Create a Unix date and time with picosecond granularity.
>>> createUnixDateTimePicos 2014 August 2 10 57 54 809479393286 2014-08-02 10:57:54.809479393286
Get Current Unix Timestamps
getCurrentUnixDate :: IO UnixDateSource
Get the current Unix date from the system clock.
>>> getCurrentUnixDate 2013-11-03
getCurrentUnixTime :: IO UnixTimeSource
Get the current Unix time from the system clock.
>>> getCurrentUnixTime 05:45:06
getCurrentUnixTimeMillis :: IO UnixTimeMillisSource
Get the current Unix time with millisecond granularity from the system clock.
>>> getCurrentUnixTimeMillis 06:30:08.840
getCurrentUnixTimeMicros :: IO UnixTimeMicrosSource
Get the current Unix time with microsecond granularity from the system clock.
>>> getCurrentUnixTimeMicros 06:40:39.102910
getCurrentUnixTimeNanos :: IO UnixTimeNanosSource
Get the current Unix time with nanosecond granularity from the system clock.
>>> getCurrentUnixTimeNanos 06:40:45.903610000
Note that this functions calls gettimeofday
behind the scenes. Therefore,
the resultant timestamp will have nanosecond granularity, but only microsecond
resolution.
getCurrentUnixTimePicos :: IO UnixTimePicosSource
Get the current Unix time with picosecond granularity from the system clock.
>>> getCurrentUnixTimePicos 06:47:15.379247000000
Note that this functions calls gettimeofday
behind the scenes. Therefore,
the resultant timestamp will have picosecond granularity, but only microsecond
resolution.
getCurrentUnixDateTime :: IO UnixDateTimeSource
Get the current Unix date and time from the system clock.
>>> getCurrentUnixDateTime 2013-11-03 23:09:38
getCurrentUnixDateTimeMillis :: IO UnixDateTimeMillisSource
Get the current Unix date and time with millisecond granularity from the system clock.
>>> getCurrentUnixDateTimeMillis 2013-11-03 23:09:51.986
getCurrentUnixDateTimeMicros :: IO UnixDateTimeMicrosSource
Get the current Unix date and time with microsecond granularity from the system clock.
>>> getCurrentUnixDateTimeMicros 2013-11-03 23:10:06.498559
getCurrentUnixDateTimeNanos :: IO UnixDateTimeNanosSource
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 UnixDateTimePicosSource
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 nanosecond granularity, but only microsecond resolution.
Pretty Unix Timestamps
prettyUnixDate :: (Unix d, Date d) => d -> StringSource
Show a Unix date as a pretty string.
>>> prettyUnixDate $ createUnixDate 2014 August 16 "Saturday, August 16th, 2014"
prettyUnixTime :: (Unix t, Time t) => t -> StringSource
Show a Unix time as a pretty string.
>>> getCurrentUnixTime >>= putStrLn . prettyUnixTime 9:12 AM
prettyUnixDateTime :: (Unix dt, DateTime dt) => dt -> StringSource
Show a Unix date and time as a pretty string.
>>> getCurrentUnixDateTime >>= return . prettyUnixDateTime "6:44 AM, Tuesday, December 31st, 2013"