time-quote-1.9.0.0: Quasi-quoters for dates and times

Copyright(C) 2018 Thomas Tuegel <ttuegel@mailbox.org>
LicenseGPL-3
MaintainerThomas Tuegel <ttuegel@mailbox.org>
Safe HaskellNone
LanguageHaskell2010

Data.Time.Quote

Description

This module provides quasi-quoters to parse dates and times according to ISO 8601 formats. By using quasi-quotes for literals, parse errors are found by the compiler.

To use quasi-quotes, place the LANGUAGE QuasiQuotes pragma at the top of the source file or use the GHC command-line option -XQuasiQuotes. If using GHCi, enter at the prompt

>>> :set -XQuasiQuotes

Quasi-quoters are provided for each type that defines an ISO8601 instance. Use the quasi-quoters to quote a literal date or time of the corresponding type; for example

[utcTime| 2018-05-25T15:36:27.416462897Z |]  -- :: UTCTime

All quasi-quoters accept optional whitespace before and after the quoted value. Refer to the list below for details about the expected format for each type.

Synopsis

Documentation

utcTime :: QuasiQuoter Source #

Quote a value of type UTCTime in yyyy-mm-ddThh:mm:ss[.sss]Z format.

>>> [utcTime| 2018-05-25T15:36:27.416462897Z |]
2018-05-25 15:36:27.416462897 UTC

day :: QuasiQuoter Source #

Quote a value of type Day in yyyy-mm-dd format.

>>> [day| 2018-05-25 |]
2018-05-25

timeOfDay :: QuasiQuoter Source #

Quote a value of type TimeOfDay in hh:mm:ss[.sss] format.

>>> [timeOfDay| 15:36:27.416462897 |]
15:36:27.416462897

localTime :: QuasiQuoter Source #

Quote a value of type LocalTime in yyyy-mm-ddThh:mm:ss[.sss] format.

>>> [localTime| 2018-05-25T10:36:27.416462897 |]
2018-05-25 10:36:27.416462897

timeZone :: QuasiQuoter Source #

Quote a value of type TimeZone in ±hh:mm format.

>>> [timeZone| -05:00 |]
-0500

zonedTime :: QuasiQuoter Source #

Quote a value of type ZonedTime in yyyy-mm-ddThh:mm:ss[.sss]±hh:mm format.

>>> [zonedTime| 2018-05-25T10:36:27.416462897-05:00 |]
2018-05-25 10:36:27.416462897 -0500

calendarDiffDays :: QuasiQuoter Source #

Quote a value of type CalendarDiffDays in PyYmMdD format.

>>> [calendarDiffDays| P2018Y5M25D |]
P24221M25D

calendarDiffTime :: QuasiQuoter Source #

Quote a value of type CalendarDiffTime in PyYmMdDThHmMs[.sss]S format.

>>> [calendarDiffTime| P2018Y5M25DT15H36M27.416462897S |]
P24221MT2216187.416462897S