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 Source #

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 Source #

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 Source #

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 

Methods

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

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

Data 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 
NFData UTCTime 

Methods

rnf :: UTCTime -> () #

FormatTime UTCTime 
ParseTime UTCTime 

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 
Data 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 
Show TimeZone 
NFData TimeZone 

Methods

rnf :: TimeZone -> () #

FormatTime TimeZone 
ParseTime TimeZone 

Specify your own formats

utcFormat :: String -> QuasiQuoter Source #

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

timeZoneFormat :: String -> QuasiQuoter Source #

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

Orphan instances

Lift TimeZone Source # 

Methods

lift :: TimeZone -> Q Exp #

Lift UTCTime Source # 

Methods

lift :: UTCTime -> Q Exp #

Lift Day Source # 

Methods

lift :: Day -> Q Exp #

Lift DiffTime Source # 

Methods

lift :: DiffTime -> Q Exp #