time-exts-1.1.0: Efficient Timestamps

Safe HaskellNone

Data.Time.Exts.Unix

Contents

Description

Unix timestamps of varying granularity.

Synopsis

Unix Class

class Unix u whereSource

The Unix timestamp type class.

Methods

unixBase :: u -> Int64Source

Get the base component of a Unix timestamp.

Unix Timestamps

Create Unix Timestamps

createUnixDate :: Year -> Month -> Day -> UnixDateSource

Create a Unix date.

 >>> createUnixDate 2013 November 03
 2013-11-03

createUnixDateTime :: Year -> Month -> Day -> Hour -> Minute -> Second -> UnixDateTimeSource

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 -> UnixDateTimeMillisSource

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 -> 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 01 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 02 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

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 picosecond 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"

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"