HORIZON HASKELLDocslts/ghc-9.10.xc74966e2026-09-27Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · c74966e · 2026-09-27

  • Packageunix-time-0.4.17
  • Exports18
  • LanguageHaskell2010
  • LicenceBSD-3-Clause
  • SourceTypes.hsc

Data structure

1 declaration
datadata UnixTime
#

Data structure for Unix time.

Please note that this uses GHC-derived Eq and Ord instances. Notably

Example1 expression
UnixTime 1 0 > UnixTime 0 999999999True

You should instead use UnixDiffTime along with its helpers such as microSecondsToUnixDiffTime which will ensure that such unusual values are never created.

Constructors

Instances7Eq, Ord, Show, Generic, Storable, Binary, …

Getting time

1 declaration

Parsing and formatting time

4 declarations

Formatting UnixTime to ByteString in GMT. This is a wrapper for strftime_l(). utMicroSeconds is ignored.

Example6 expressions
formatUnixTimeGMT webDateFormat $ UnixTime 0 0"Thu, 01 Jan 1970 00:00:00 GMT"let ut = UnixTime 100 200let str = formatUnixTimeGMT "%s" utlet ut' = parseUnixTimeGMT "%s" str((==) `on` utSeconds) ut ut'True((==) `on` utMicroSeconds) ut ut'False

Format

3 declarations

Difference time

5 declarations
datadata UnixDiffTime
#

Data structure for UnixTime diff.

It is up to the user to ensure that udtMicroSeconds < 1000000. Helpers such as microSecondsToUnixDiffTime can help you to create valid values. For example, it's a mistake to use Data.Text.addUnixDiffTime with a value UnixDiffTime 0 9999999 as it will produce an incorrect value back. You should instead use functions such as microSecondsToUnixDiffTime to create values that are in-range. This avoids any gotchas when then doing comparisons.

Constructors

Instances5Eq, Num, Ord, Real, Show
  • Eq UnixDiffTimeDefined in unix-time-0.4.17 · Data.UnixTime.Types
  • Num UnixDiffTimeDefined in unix-time-0.4.17 · Data.UnixTime.Diff · orphan

    Arithmetic operations where (1::UnixDiffTime) means 1 second.

    Example3 expressions
    (3 :: UnixDiffTime) + 2UnixDiffTime {udtSeconds = 5, udtMicroSeconds = 0}(2 :: UnixDiffTime) - 5UnixDiffTime {udtSeconds = -3, udtMicroSeconds = 0}(3 :: UnixDiffTime) * 2UnixDiffTime {udtSeconds = 6, udtMicroSeconds = 0}
  • Ord UnixDiffTimeDefined in unix-time-0.4.17 · Data.UnixTime.Types
  • Real UnixDiffTimeDefined in unix-time-0.4.17 · Data.UnixTime.Diff · orphan
  • Show UnixDiffTimeDefined in unix-time-0.4.17 · Data.UnixTime.Types

Creating difference from micro seconds.

Example1 expression
microSecondsToUnixDiffTime (12345678 :: Int)UnixDiffTime {udtSeconds = 12, udtMicroSeconds = 345678}
Example1 expression
microSecondsToUnixDiffTime ((-12345678) :: Int)UnixDiffTime {udtSeconds = -12, udtMicroSeconds = -345678}

Translating time

4 declarations