| Haskell Hierarchical Libraries (base package) | Contents | Index

System.Time

Portability | portable
Stability | provisional
Maintainer | libraries@haskell.org

Contents

Clock times
Time differences
Calendar times

Description
The standard Time library, providing standard functionality for clock times, including timezone information (i.e, the functionality of "`time.h`", adapted to the Haskell environment). It follows RFC 1129 in its use of Coordinated Universal Time (UTC).
Synopsis

data ClockTime = TOD Integer Integer
getClockTime :: IO ClockTime

data TimeDiff = TimeDiff {

tdYear :: Int
tdMonth :: Int
tdDay :: Int
tdHour :: Int
tdMin :: Int
tdSec :: Int
tdPicosec :: Integer

}

noTimeDiff :: TimeDiff
diffClockTimes :: ClockTime -> ClockTime -> TimeDiff
addToClockTime :: TimeDiff -> ClockTime -> ClockTime
normalizeTimeDiff :: TimeDiff -> TimeDiff
timeDiffToString :: TimeDiff -> String
formatTimeDiff :: TimeLocale -> String -> TimeDiff -> String

data CalendarTime = CalendarTime {

ctYear :: Int
ctMonth :: Month
ctDay :: Int
ctHour :: Int
ctMin :: Int
ctSec :: Int
ctPicosec :: Integer
ctWDay :: Day
ctYDay :: Int
ctTZName :: String
ctTZ :: Int
ctIsDST :: Bool

}

data Month

= January
| February
| March
| April
| May
| June
| July
| August
| September
| October
| November
| December

data Day

= Sunday
| Monday
| Tuesday
| Wednesday
| Thursday
| Friday
| Saturday

toCalendarTime :: ClockTime -> IO CalendarTime
toUTCTime :: ClockTime -> CalendarTime
toClockTime :: CalendarTime -> ClockTime
calendarTimeToString :: CalendarTime -> String
formatCalendarTime :: TimeLocale -> String -> CalendarTime -> String

Clock times
data ClockTime

A representation of the internal clock time. Clock times may be compared, converted to strings, or converted to an external calendar time `CalendarTime` for I/O or other manipulations.
Constructors

TOD Integer Integer | Construct a clock time. The arguments are a number of seconds since 00:00:00 (UTC) on 1 January 1970, and an additional number of picoseconds. In Haskell 98, the `ClockTime` type is abstract.

Instances

Eq ClockTime
Ord ClockTime
Show ClockTime

getClockTime :: IO ClockTime
returns the current time in its internal representation.
Time differences
data TimeDiff

records the difference between two clock times in a user-readable way.
Constructors

TimeDiff |

tdYear :: Int |
tdMonth :: Int |
tdDay :: Int |
tdHour :: Int |
tdMin :: Int |
tdSec :: Int |
tdPicosec :: Integer |

Instances

Eq TimeDiff
Ord TimeDiff
Read TimeDiff
Show TimeDiff

noTimeDiff :: TimeDiff
null time difference.
diffClockTimes :: ClockTime -> ClockTime -> TimeDiff
``diffClockTimes` t1 t2` returns the difference between two clock times `t1` and `t2` as a `TimeDiff`.
addToClockTime :: TimeDiff -> ClockTime -> ClockTime
``addToClockTime` d t` adds a time difference `d` and a clock time `t` to yield a new clock time. The difference `d` may be either positive or negative.
normalizeTimeDiff :: TimeDiff -> TimeDiff
converts a time difference to normal form.
timeDiffToString :: TimeDiff -> String
formats time differences using local conventions.
formatTimeDiff :: TimeLocale -> String -> TimeDiff -> String
formats time differences using local conventions and a formatting string. The formatting string is that understood by the ISO C `strftime()` function.
Calendar times
data CalendarTime

`CalendarTime` is a user-readable and manipulable representation of the internal `ClockTime` type.
Constructors

CalendarTime |

ctYear :: Int | Year (pre-Gregorian dates are inaccurate)
ctMonth :: Month | Month of the year
ctDay :: Int | Day of the month (1 to 31)
ctHour :: Int | Hour of the day (0 to 23)
ctMin :: Int | Minutes (0 to 59)
ctSec :: Int | Seconds (0 to 61, allowing for up to two leap seconds)
ctPicosec :: Integer | Picoseconds
ctWDay :: Day | Day of the week
ctYDay :: Int | Day of the year (0 to 364, or 365 in leap years)
ctTZName :: String | Name of the time zone
ctTZ :: Int | Variation from UTC in seconds
ctIsDST :: Bool | `True` if Daylight Savings Time would be in effect, and `False` otherwise

Instances

Eq CalendarTime
Ord CalendarTime
Read CalendarTime
Show CalendarTime

data Month

A month of the year.
Constructors

January |
February |
March |
April |
May |
June |
July |
August |
September |
October |
November |
December |

Instances

Bounded Month
Enum Month
Eq Month
Ix Month
Ord Month
Read Month
Show Month

data Day

A day of the week.
Constructors

Sunday |
Monday |
Tuesday |
Wednesday |
Thursday |
Friday |
Saturday |

Instances

Bounded Day
Enum Day
Eq Day
Ix Day
Ord Day
Read Day
Show Day

toCalendarTime :: ClockTime -> IO CalendarTime
converts an internal clock time to a local time, modified by the timezone and daylight savings time settings in force at the time of conversion. Because of this dependence on the local environment, `toCalendarTime` is in the `IO` monad.
toUTCTime :: ClockTime -> CalendarTime
converts an internal clock time into a `CalendarTime` in standard UTC format.
toClockTime :: CalendarTime -> ClockTime
converts a `CalendarTime` into the corresponding internal `ClockTime`, ignoring the contents of the `ctWDay`, `ctYDay`, `ctTZName` and `ctIsDST` fields.
calendarTimeToString :: CalendarTime -> String
formats calendar times using local conventions.
formatCalendarTime :: TimeLocale -> String -> CalendarTime -> String
formats calendar times using local conventions and a formatting string. The formatting string is that understood by the ISO C `strftime()` function.
Produced by Haddock version 0.7