chronologique-0.2.1.0: lib/Chrono/Formats.hs
--
-- Time to manipulate time
--
-- Copyright © 2013-2016 Operational Dynamics Consulting, Pty Ltd and Others
--
-- The code in this file, and the program it is a part of, is
-- made available to you by its authors as open source software:
-- you can redistribute it and/or modify it under the terms of
-- the 3-clause BSD licence.
--
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module Chrono.Formats
(
ISO8601_Precise(..)
, ISO8601_Seconds(..)
, ISO8601_Days(..)
, Posix_Precise(..)
, Posix_Micro(..)
, Posix_Milli(..)
, Posix_Seconds(..)
) where
import Data.Hourglass
--
-- | Format string describing full (nanosecond) precision ISO8601 time,
--
-- > 2014-07-31T23:09:35.274387019Z
--
data ISO8601_Precise = ISO8601_Precise
instance TimeFormat ISO8601_Precise where
toFormat _ = TimeFormatString
[ Format_Year
, Format_Text '-'
, Format_Month2
, Format_Text '-'
, Format_Day2
, Format_Text 'T'
, Format_Hour
, Format_Text ':'
, Format_Minute
, Format_Text ':'
, Format_Second
, Format_Text '.'
, Format_Precision 9
, Format_Text 'Z'
]
data ISO8601_Seconds = ISO8601_Seconds
instance TimeFormat ISO8601_Seconds where
toFormat _ = TimeFormatString
[ Format_Year
, Format_Text '-'
, Format_Month2
, Format_Text '-'
, Format_Day2
, Format_Text 'T'
, Format_Hour
, Format_Text ':'
, Format_Minute
, Format_Text ':'
, Format_Second
, Format_Text 'Z'
]
data ISO8601_Days = ISO8601_Days
instance TimeFormat ISO8601_Days where
toFormat _ = TimeFormatString
[ Format_Year
, Format_Text '-'
, Format_Month2
, Format_Text '-'
, Format_Day2
]
data Posix_Precise = Posix_Precise
instance TimeFormat Posix_Precise where
toFormat _ = TimeFormatString
[ Format_UnixSecond
, Format_Text '.'
, Format_MilliSecond
, Format_MicroSecond
, Format_NanoSecond
]
data Posix_Micro = Posix_Micro
instance TimeFormat Posix_Micro where
toFormat _ = TimeFormatString
[ Format_UnixSecond
, Format_Text '.'
, Format_MilliSecond
, Format_MicroSecond
]
data Posix_Milli = Posix_Milli
instance TimeFormat Posix_Milli where
toFormat _ = TimeFormatString
[ Format_UnixSecond
, Format_Text '.'
, Format_MilliSecond
]
data Posix_Seconds = Posix_Seconds
instance TimeFormat Posix_Seconds where
toFormat _ = TimeFormatString
[ Format_UnixSecond
]