Safe Haskell | None |
---|---|
Language | Haskell2010 |
Data.Time.Exts.Unix
Contents
Description
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.
Constructors
UnixDate | |
Fields |
Instances
newtype UnixDateTime Source
Seconds since Unix epoch (excluding leap seconds).
Constructors
UnixDateTime | |
Fields |
Instances
newtype UnixDateTimeMillis Source
Milliseconds since Unix epoch (excluding leap seconds).
Constructors
UnixDateTimeMillis | |
Fields |
Instances
newtype UnixDateTimeMicros Source
Microseconds since Unix epoch (excluding leap seconds).
Constructors
UnixDateTimeMicros | |
Fields |
Instances
data UnixDateTimeNanos Source
Nanoseconds since Unix epoch (excluding leap seconds).
Constructors
UnixDateTimeNanos | |
Fields
|
Instances
data UnixDateTimePicos Source
Picoseconds since Unix epoch (excluding leap seconds).
Constructors
UnixDateTimePicos | |
Fields
|
Instances
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"