time-qq-0.0.1.0: Quasi-quoter for UTCTime times

Safe HaskellNone
LanguageHaskell2010

Data.Time.QQ

Contents

Description

This module provides quasi quoters for writing time literals.

First enable the QuasiQuotes language extension, then you will be able to write the the following:

>>> [utcIso8601| 2048-12-01  |] :: UTCTime
2048-12-01 00:00:00 UTC

Unparseable dates will throw errors at compile time.

Zoned time quoters are not provided as the time library doesn't seem to do anything with "%Z".

Synopsis

ISO8601 UTC time QuasiQuoters

utcIso8601 :: QuasiQuoter #

ISO8601 date with seconds and optional "." with more precision following to a UTCTime.

Do not specify a timezone, the time should be UTC.

>>> [utcIso8601| 2048-12-01  |] :: UTCTime
2048-12-01 00:00:00 UTC

utcIso8601ms :: QuasiQuoter #

ISO8601 date with seconds and optional "." with more precision following to a UTCTime.

Do not specify a timezone, the time should be UTC.

>>> [utcIso8601ms| 2099-01-01T00:00:00.42324 |]
2099-01-01 00:00:00.42324 UTC

TimeZone QuasiQuoters

timeZone :: QuasiQuoter #

Timezones from a reference string, to a TimeZone.

>>> [timeZone| BST |] :: TimeZone
BST

Re-exports

data UTCTime #

This is the simplest representation of UTC. It consists of the day number, and a time offset from midnight. Note that if a day has a leap second added to it, it will have 86401 seconds.

Constructors

UTCTime 

Fields

Instances
Eq UTCTime 
Instance details

Defined in Data.Time.Clock.Internal.UTCTime

Methods

(==) :: UTCTime -> UTCTime -> Bool #

(/=) :: UTCTime -> UTCTime -> Bool #

Data UTCTime 
Instance details

Defined in Data.Time.Clock.Internal.UTCTime

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UTCTime -> c UTCTime #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c UTCTime #

toConstr :: UTCTime -> Constr #

dataTypeOf :: UTCTime -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c UTCTime) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c UTCTime) #

gmapT :: (forall b. Data b => b -> b) -> UTCTime -> UTCTime #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> UTCTime -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> UTCTime -> r #

gmapQ :: (forall d. Data d => d -> u) -> UTCTime -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> UTCTime -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> UTCTime -> m UTCTime #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UTCTime -> m UTCTime #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UTCTime -> m UTCTime #

Ord UTCTime 
Instance details

Defined in Data.Time.Clock.Internal.UTCTime

Lift UTCTime # 
Instance details

Defined in Data.Time.QQ

Methods

lift :: UTCTime -> Q Exp #

NFData UTCTime 
Instance details

Defined in Data.Time.Clock.Internal.UTCTime

Methods

rnf :: UTCTime -> () #

FormatTime UTCTime 
Instance details

Defined in Data.Time.Format

ParseTime UTCTime 
Instance details

Defined in Data.Time.Format.Parse

data TimeZone #

A TimeZone is a whole number of minutes offset from UTC, together with a name and a "just for summer" flag.

Constructors

TimeZone 

Fields

Instances
Eq TimeZone 
Instance details

Defined in Data.Time.LocalTime.Internal.TimeZone

Data TimeZone 
Instance details

Defined in Data.Time.LocalTime.Internal.TimeZone

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TimeZone -> c TimeZone #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TimeZone #

toConstr :: TimeZone -> Constr #

dataTypeOf :: TimeZone -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TimeZone) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TimeZone) #

gmapT :: (forall b. Data b => b -> b) -> TimeZone -> TimeZone #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TimeZone -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TimeZone -> r #

gmapQ :: (forall d. Data d => d -> u) -> TimeZone -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> TimeZone -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> TimeZone -> m TimeZone #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TimeZone -> m TimeZone #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TimeZone -> m TimeZone #

Ord TimeZone 
Instance details

Defined in Data.Time.LocalTime.Internal.TimeZone

Show TimeZone 
Instance details

Defined in Data.Time.LocalTime.Internal.TimeZone

Lift TimeZone # 
Instance details

Defined in Data.Time.QQ

Methods

lift :: TimeZone -> Q Exp #

NFData TimeZone 
Instance details

Defined in Data.Time.LocalTime.Internal.TimeZone

Methods

rnf :: TimeZone -> () #

FormatTime TimeZone 
Instance details

Defined in Data.Time.Format

ParseTime TimeZone 
Instance details

Defined in Data.Time.Format.Parse

Specify your own formats

utcFormat :: String -> QuasiQuoter #

Build a UTCTime QuasiQuoter for a given format string, as per readTime.

timeZoneFormat :: String -> QuasiQuoter #

Build a TimeZone QuasiQuoter for a given format string, as per readTime.

Orphan instances

Lift TimeZone # 
Instance details

Methods

lift :: TimeZone -> Q Exp #

Lift UTCTime # 
Instance details

Methods

lift :: UTCTime -> Q Exp #

Lift DiffTime # 
Instance details

Methods

lift :: DiffTime -> Q Exp #

Lift Day # 
Instance details

Methods

lift :: Day -> Q Exp #