time-hourglass-0.3.0: src/Data/Hourglass.hs
{- |
Module : Data.Hourglass
License : BSD-style
Copyright : (c) 2014 Vincent Hanquez <vincent@snarc.org>
Stability : experimental
Portability : unknown
Time-related types and functions.
Basic types for representing points in time are t'Elapsed' and t'ElapsedP`. The
\'P\' is short for \'precise\'. t'Elapsed' represents numbers of non-leap
seconds elapsed since the Unix epoch (that is, the point of time
represented by 1970-01-01 00:00:00 UTC). t'ElapsedP' represents numbers of
non-leap seconds and nanoseconds elapsed since that point in time.
Values of other types representing points in time can be converted to and from
values of the t'Elapsed' and t'ElapsedP' types. For example:
> d = timeGetElapsed (Date 1955 April 18) :: Elapsed
> timeFromElapsed d :: DateTime
Local time is represented by t'LocalTime' @t@, parameterised by any other type
representing time (for example, t'Elapsed', t'Date' or t'DateTime'). A local
time value is augmented by a timezone offset in minutes. For example:
> localTime (Date 2014 May 4) 600 -- local time at UTC+10 of 4th May 2014
-}
module Data.Hourglass
( -- * Time units
NanoSeconds (..)
, Seconds (..)
, Minutes (..)
, Hours (..)
-- * Calendar enumerations
, Month (..)
, WeekDay (..)
-- * Points in time
-- ** Precise amounts of seconds
, fromRationalSecondsP
-- ** Elapsed time since the Unix epoch
, Elapsed (..)
, ElapsedP (..)
, mkElapsedP
, fromRationalElapsedP
-- ** Date, time, and date and time
, Date (..)
, TimeOfDay (..)
, DateTime (..)
-- ** Local time and timezone-related
, LocalTime
, Timezone (..)
, TimezoneOffset (..)
, timezoneOffsetToSeconds
, UTC (..)
, timezone_UTC
, TimezoneMinutes (..)
-- *** Constructors
, localTime
, localTimeFromGlobal
, localTimeSetTimezone
-- *** Accessors
, localTimeUnwrap
, localTimeGetTimezone
-- ** Miscellaneous calandar functions
, isLeapYear
, getWeekDay
, getDayOfTheYear
, daysInMonth
-- * Periods of time
, Duration (..)
, Period (..)
, timeAdd
, timeDiff
, timeDiffP
, dateAddPeriod
-- * Conversion of points in time
, Time (..)
, Timeable (..)
, timeConvert
, timeGetDate
, timeGetDateTimeOfDay
, timeGetTimeOfDay
, localTimeConvert
, localTimeToGlobal
-- * Conversion of periods of time
, TimeInterval (..)
-- * Parsing and Printing
-- ** Format strings
, TimeFormat (..)
, TimeFormatString (..)
, TimeFormatElem (..)
, TimeFormatFct (..)
-- ** Common built-in formats
, ISO8601_Date (..)
, ISO8601_DateAndTime (..)
-- ** Format methods
, localTimePrint
, timePrint
, localTimeParseE
, localTimeParse
, timeParseE
, timeParse
) where
import Time.Calendar
( daysInMonth, getDayOfTheYear, getWeekDay, isLeapYear )
import Time.Format
import Time.LocalTime
import Time.Time
import Time.Timezone
import Time.Types