HORIZON HASKELLDocslts/ghc-9.14.x3e2d5682026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 9.14.1 · lts/ghc-9.14.x · 3e2d568 · 2026-10-11

Moduletime-hourglass-0.3.0Haskell2010

Time.Compat

Basic time conversion compatibility.

This module aims to help conversion between types from time package and types from the time-hourglass package.

An example of use (taken from file examplesExampleTime/Compat.hs):

import Data.Hourglass as H
import Time.Compat as C
import Data.Time as T

transpose :: T.ZonedTime -> H.LocalTime H.DateTime
transpose oldTime = H.localTime
  offsetTime
  (H.DateTime newDate timeofday)
 where
  T.ZonedTime (T.LocalTime day tod) (T.TimeZone tzmin _ _) = oldTime

  newDate :: H.Date
  newDate = C.dateFromMJDEpoch $ T.toModifiedJulianDay day

  timeofday :: H.TimeOfDay
  timeofday = C.diffTimeToTimeOfDay $ toRational $ T.timeOfDayToTime tod

  offsetTime = H.TimezoneOffset $ fromIntegral tzmin
  • 3 values
valuedateFromUnixEpoch
  1. :: Integer

    Number of days since the Unix epoch (1970-01-01 00:00:00 UTC).

  2. -> Date
#

Given an integer which represents the number of days since the Unix epoch (1970-01-01 00:00:00 UTC), yield the corresponding date in the proleptic Gregorian calendar.

valuedateFromMJDEpoch
  1. :: Integer

    Number of days since 1858-11-17 00:00:00 UTC.

  2. -> Date
#

Given an integer which represents the number of days since the Modified Julian Date (MJD) epoch (1858-11-17 00:00:00 UTC), yields the corresponding date in the proleptic Gregorian calendar.

This function allows a user to convert a Data.Time.Calendar.Day into Date.

import qualified Data.Time.Calendar as T

timeDay :: T.Day

dateFromMJDEpoch $ T.toModifiedJulianDay timeDay
valuediffTimeToTimeOfDay
  1. :: Real t
  2. => t

    Number of non-leap seconds of the time of the day.

  3. -> TimeOfDay
#

Given a real number representing the number of non-leap seconds since the start of the day, yield a TimeOfDay value (assuming no leap seconds).

Example with DiffTime type from package time:

import qualified Data.Time.Clock as T

difftime :: T.DiffTime

diffTimeToTimeOfDay difftime

Example with the TimeOfDay type from package time:

import qualified Data.Time.Clock as T

timeofday :: T.TimeOfDay

diffTimeToTimeOfDay $ T.timeOfDayToTime timeofday