old-time-1.1.0.2: Time library

Copyright | (c) The University of Glasgow 2001
License | BSD-style (see the file libraries/old-time/LICENSE)
Maintainer | libraries@haskell.org
Stability | provisional
Portability | portable
Safe Haskell | Trustworthy
Language | Haskell2010

System.Time

Contents

- Clock times
- Time differences
- Calendar times

Description

The standard time library from Haskell 98. This library is deprecated, please look at `Data.Time` in the `time` package instead.

System.Time provides 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

# Time differences

data TimeDiff

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

Constructors

TimeDiff |

Fields

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 |

Fields

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 |
Ord Month |
Read Month |
Show Month |
Ix Month |

data Day

A day of the week.

Constructors

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

Instances

Bounded Day |
Enum Day |
Eq Day |
Ord Day |
Read Day |
Show Day |
Ix 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.