Safe Haskell | None |
---|---|
Language | Haskell2010 |
Chronos
Contents
Description
Chronos is a performance-oriented time library for Haskell, with a straightforward API. The main differences between this and the time library are:
- Chronos uses machine integers where possible. This means that time-related arithmetic should be faster, with the drawback that the types are incapable of representing times that are very far in the future or the past (because Chronos provides nanosecond, rather than picosecond, resolution). For most users, this is not a hindrance.
- Chronos provides 'ToJSON'/'FromJSON' instances for serialisation.
- Chronos provides
Unbox
instances for working with unboxed vectors. - Chronos provides
Prim
instances for working with byte arrays/primitive arrays. - Chronos uses normal non-overloaded haskell functions for
encoding and decoding time. It provides attoparsec parsers for both
Text
andByteString
. Additionally, Chronos provides functions for encoding time toText
orByteString
. The http://hackage.haskell.org/package/time time> library accomplishes these with the Data.Time.Format module, which uses UNIX-style datetime format strings. The approach taken by Chronos is faster and catches more mistakes at compile time, at the cost of being less expressive.
Synopsis
- now :: IO Time
- today :: IO Day
- tomorrow :: IO Day
- yesterday :: IO Day
- epoch :: Time
- stopwatch :: IO a -> IO (Timespan, a)
- stopwatch_ :: IO a -> IO Timespan
- stopwatchWith :: Clock -> IO a -> IO (Timespan, a)
- stopwatchWith_ :: Clock -> IO a -> IO Timespan
- datetimeFromYmdhms :: Int -> Int -> Int -> Int -> Int -> Int -> Datetime
- timeFromYmdhms :: Int -> Int -> Int -> Int -> Int -> Int -> Time
- timeToDatetime :: Time -> Datetime
- datetimeToTime :: Datetime -> Time
- timeToOffsetDatetime :: Offset -> Time -> OffsetDatetime
- offsetDatetimeToTime :: OffsetDatetime -> Time
- timeToDayTruncate :: Time -> Day
- dayToTimeMidnight :: Day -> Time
- dayToDate :: Day -> Date
- dateToDay :: Date -> Day
- dayToOrdinalDate :: Day -> OrdinalDate
- ordinalDateToDay :: OrdinalDate -> Day
- monthDateToDayOfYear :: Bool -> MonthDate -> DayOfYear
- dayOfYearToMonthDay :: Bool -> DayOfYear -> MonthDate
- second :: Timespan
- minute :: Timespan
- hour :: Timespan
- day :: Timespan
- week :: Timespan
- buildDayOfWeekMatch :: a -> a -> a -> a -> a -> a -> a -> DayOfWeekMatch a
- buildMonthMatch :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> MonthMatch a
- buildUnboxedMonthMatch :: Unbox a => a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> UnboxedMonthMatch a
- caseDayOfWeek :: DayOfWeekMatch a -> DayOfWeek -> a
- caseMonth :: MonthMatch a -> Month -> a
- caseUnboxedMonth :: Unbox a => UnboxedMonthMatch a -> Month -> a
- w3c :: DatetimeFormat
- slash :: DatetimeFormat
- hyphen :: DatetimeFormat
- compact :: DatetimeFormat
- january :: Month
- february :: Month
- march :: Month
- april :: Month
- may :: Month
- june :: Month
- july :: Month
- august :: Month
- september :: Month
- october :: Month
- november :: Month
- december :: Month
- sunday :: DayOfWeek
- monday :: DayOfWeek
- tuesday :: DayOfWeek
- wednesday :: DayOfWeek
- thursday :: DayOfWeek
- friday :: DayOfWeek
- saturday :: DayOfWeek
- daysInMonth :: Bool -> Month -> Int
- isLeapYear :: Year -> Bool
- observedOffsets :: Vector Offset
- builder_Ymd :: Maybe Char -> Date -> Builder
- builder_Dmy :: Maybe Char -> Date -> Builder
- builder_HMS :: SubsecondPrecision -> Maybe Char -> TimeOfDay -> Builder
- parser_Ymd :: Maybe Char -> Parser Date
- parser_Mdy :: Maybe Char -> Parser Date
- parser_Dmy :: Maybe Char -> Parser Date
- builderUtf8_Ymd :: Maybe Char -> Date -> Builder
- parserUtf8_Ymd :: Maybe Char -> Parser Date
- builder_IMS_p :: MeridiemLocale Text -> SubsecondPrecision -> Maybe Char -> TimeOfDay -> Builder
- builder_IMSp :: MeridiemLocale Text -> SubsecondPrecision -> Maybe Char -> TimeOfDay -> Builder
- parser_HMS :: Maybe Char -> Parser TimeOfDay
- parser_HMS_opt_S :: Maybe Char -> Parser TimeOfDay
- builderUtf8_HMS :: SubsecondPrecision -> Maybe Char -> TimeOfDay -> Builder
- builderUtf8_IMS_p :: MeridiemLocale ByteString -> SubsecondPrecision -> Maybe Char -> TimeOfDay -> Builder
- builderUtf8_IMSp :: MeridiemLocale ByteString -> SubsecondPrecision -> Maybe Char -> TimeOfDay -> Builder
- parserUtf8_HMS :: Maybe Char -> Parser TimeOfDay
- parserUtf8_HMS_opt_S :: Maybe Char -> Parser TimeOfDay
- zeptoUtf8_HMS :: Maybe Char -> Parser TimeOfDay
- builder_DmyHMS :: SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder
- builder_DmyIMSp :: MeridiemLocale Text -> SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder
- builder_DmyIMS_p :: MeridiemLocale Text -> SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder
- builder_YmdHMS :: SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder
- builder_YmdIMSp :: MeridiemLocale Text -> SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder
- builder_YmdIMS_p :: MeridiemLocale Text -> SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder
- builderW3C :: Datetime -> Builder
- encode_DmyHMS :: SubsecondPrecision -> DatetimeFormat -> Datetime -> Text
- encode_DmyIMS_p :: MeridiemLocale Text -> SubsecondPrecision -> DatetimeFormat -> Datetime -> Text
- encode_YmdHMS :: SubsecondPrecision -> DatetimeFormat -> Datetime -> Text
- encode_YmdIMS_p :: MeridiemLocale Text -> SubsecondPrecision -> DatetimeFormat -> Datetime -> Text
- parser_DmyHMS :: DatetimeFormat -> Parser Datetime
- parser_YmdHMS :: DatetimeFormat -> Parser Datetime
- parser_YmdHMS_opt_S :: DatetimeFormat -> Parser Datetime
- parser_DmyHMS_opt_S :: DatetimeFormat -> Parser Datetime
- decode_DmyHMS :: DatetimeFormat -> Text -> Maybe Datetime
- decode_YmdHMS :: DatetimeFormat -> Text -> Maybe Datetime
- decode_YmdHMS_opt_S :: DatetimeFormat -> Text -> Maybe Datetime
- decode_DmyHMS_opt_S :: DatetimeFormat -> Text -> Maybe Datetime
- encodeUtf8_YmdHMS :: SubsecondPrecision -> DatetimeFormat -> Datetime -> ByteString
- encodeUtf8_YmdIMS_p :: MeridiemLocale ByteString -> SubsecondPrecision -> DatetimeFormat -> Datetime -> ByteString
- builderUtf8_YmdHMS :: SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder
- builderUtf8_YmdIMSp :: MeridiemLocale ByteString -> SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder
- builderUtf8_YmdIMS_p :: MeridiemLocale ByteString -> SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder
- builderUtf8W3C :: Datetime -> Builder
- decodeUtf8_YmdHMS :: DatetimeFormat -> ByteString -> Maybe Datetime
- decodeUtf8_YmdHMS_opt_S :: DatetimeFormat -> ByteString -> Maybe Datetime
- parserUtf8_YmdHMS :: DatetimeFormat -> Parser Datetime
- parserUtf8_YmdHMS_opt_S :: DatetimeFormat -> Parser Datetime
- zeptoUtf8_YmdHMS :: DatetimeFormat -> Parser Datetime
- encode_YmdHMSz :: OffsetFormat -> SubsecondPrecision -> DatetimeFormat -> OffsetDatetime -> Text
- encode_DmyHMSz :: OffsetFormat -> SubsecondPrecision -> DatetimeFormat -> OffsetDatetime -> Text
- builder_YmdHMSz :: OffsetFormat -> SubsecondPrecision -> DatetimeFormat -> OffsetDatetime -> Builder
- builder_DmyHMSz :: OffsetFormat -> SubsecondPrecision -> DatetimeFormat -> OffsetDatetime -> Builder
- parser_YmdHMSz :: OffsetFormat -> DatetimeFormat -> Parser OffsetDatetime
- parser_DmyHMSz :: OffsetFormat -> DatetimeFormat -> Parser OffsetDatetime
- builder_YmdIMS_p_z :: OffsetFormat -> MeridiemLocale Text -> SubsecondPrecision -> DatetimeFormat -> OffsetDatetime -> Builder
- builder_DmyIMS_p_z :: OffsetFormat -> MeridiemLocale Text -> SubsecondPrecision -> DatetimeFormat -> OffsetDatetime -> Builder
- builderW3Cz :: OffsetDatetime -> Builder
- builderUtf8_YmdHMSz :: OffsetFormat -> SubsecondPrecision -> DatetimeFormat -> OffsetDatetime -> Builder
- parserUtf8_YmdHMSz :: OffsetFormat -> DatetimeFormat -> Parser OffsetDatetime
- builderUtf8_YmdIMS_p_z :: OffsetFormat -> MeridiemLocale ByteString -> SubsecondPrecision -> DatetimeFormat -> OffsetDatetime -> Builder
- builderUtf8W3Cz :: OffsetDatetime -> Builder
- encodeOffset :: OffsetFormat -> Offset -> Text
- builderOffset :: OffsetFormat -> Offset -> Builder
- decodeOffset :: OffsetFormat -> Text -> Maybe Offset
- parserOffset :: OffsetFormat -> Parser Offset
- encodeOffsetUtf8 :: OffsetFormat -> Offset -> ByteString
- builderOffsetUtf8 :: OffsetFormat -> Offset -> Builder
- decodeOffsetUtf8 :: OffsetFormat -> ByteString -> Maybe Offset
- parserOffsetUtf8 :: OffsetFormat -> Parser Offset
- encodeTimespan :: SubsecondPrecision -> Timespan -> Text
- builderTimespan :: SubsecondPrecision -> Timespan -> Builder
- encodeTimespanUtf8 :: SubsecondPrecision -> Timespan -> ByteString
- builderTimespanUtf8 :: SubsecondPrecision -> Timespan -> Builder
- within :: Time -> TimeInterval -> Bool
- timeIntervalToTimespan :: TimeInterval -> Timespan
- whole :: TimeInterval
- singleton :: Time -> TimeInterval
- lowerBound :: TimeInterval -> Time
- upperBound :: TimeInterval -> Time
- width :: TimeInterval -> Timespan
- timeIntervalBuilder :: Time -> Time -> TimeInterval
- (...) :: Time -> Time -> TimeInterval
- newtype Day = Day {
- getDay :: Int
- newtype DayOfWeek = DayOfWeek {
- getDayOfWeek :: Int
- newtype DayOfMonth = DayOfMonth {
- getDayOfMonth :: Int
- newtype DayOfYear = DayOfYear {
- getDayOfYear :: Int
- newtype Month = Month {
- getMonth :: Int
- newtype Year = Year {
- getYear :: Int
- newtype Offset = Offset {
- getOffset :: Int
- newtype Time = Time {
- getTime :: Int64
- newtype DayOfWeekMatch a = DayOfWeekMatch {
- getDayOfWeekMatch :: Vector a
- newtype MonthMatch a = MonthMatch {
- getMonthMatch :: Vector a
- newtype UnboxedMonthMatch a = UnboxedMonthMatch {}
- newtype Timespan = Timespan {
- getTimespan :: Int64
- data SubsecondPrecision
- data Date = Date {}
- data OrdinalDate = OrdinalDate {}
- data MonthDate = MonthDate {}
- data Datetime = Datetime {
- datetimeDate :: !Date
- datetimeTime :: !TimeOfDay
- data OffsetDatetime = OffsetDatetime {}
- data TimeOfDay = TimeOfDay {
- timeOfDayHour :: !Int
- timeOfDayMinute :: !Int
- timeOfDayNanoseconds :: !Int64
- data DatetimeFormat = DatetimeFormat {
- datetimeFormatDateSeparator :: !(Maybe Char)
- datetimeFormatSeparator :: !(Maybe Char)
- datetimeFormatTimeSeparator :: !(Maybe Char)
- data OffsetFormat
- data DatetimeLocale a = DatetimeLocale {}
- data MeridiemLocale a = MeridiemLocale {
- meridiemLocaleAm :: !a
- meridiemLocalePm :: !a
- data TimeInterval = TimeInterval !Time !Time
Functions
Current
Duration
stopwatch :: IO a -> IO (Timespan, a) #
Measures the time it takes to run an action and evaluate its result to WHNF. This measurement uses a monotonic clock instead of the standard system clock.
stopwatch_ :: IO a -> IO Timespan #
Measures the time it takes to run an action. The result is discarded. This measurement uses a monotonic clock instead of the standard system clock.
stopwatchWith :: Clock -> IO a -> IO (Timespan, a) #
Variant of stopwatch
that accepts a clock type. Users
need to import System.Clock
from the clock
package
in order to provide the clock type.
stopwatchWith_ :: Clock -> IO a -> IO Timespan #
Variant of stopwatch_
that accepts a clock type.
Construction
Arguments
:: Int | Year |
-> Int | Month |
-> Int | Day |
-> Int | Hour |
-> Int | Minute |
-> Int | Second |
-> Datetime |
Construct a Datetime
from year, month, day, hour, minute, second:
>>>
datetimeFromYmdhms 2014 2 26 17 58 52
Datetime {datetimeDate = Date {dateYear = Year {getYear = 2014}, dateMonth = Month {getMonth = 1}, dateDay = DayOfMonth {getDayOfMonth = 26}}, datetimeTime = TimeOfDay {timeOfDayHour = 17, timeOfDayMinute = 58, timeOfDayNanoseconds = 52000000000}}
Arguments
:: Int | Year |
-> Int | Month |
-> Int | Day |
-> Int | Hour |
-> Int | Minute |
-> Int | Second |
-> Time |
Construct a Time
from year, month, day, hour, minute, second:
>>>
timeFromYmdhms 2014 2 26 17 58 52
Time {getTime = 1393437532000000000}
Conversion
timeToDatetime :: Time -> Datetime #
datetimeToTime :: Datetime -> Time #
timeToOffsetDatetime :: Offset -> Time -> OffsetDatetime #
Convert Time
to OffsetDatetime
by providing an Offset
.
offsetDatetimeToTime :: OffsetDatetime -> Time #
Convert OffsetDatetime
to Time
.
timeToDayTruncate :: Time -> Day #
Convert Time
to Day
. This function is lossy; consequently, it
does not roundtrip with dayToTimeMidnight
.
dayToOrdinalDate :: Day -> OrdinalDate #
Convert a Day
to an OrdinalDate
.
ordinalDateToDay :: OrdinalDate -> Day #
Convert an OrdinalDate
to a Day
.
Build Timespan
Matching
buildDayOfWeekMatch :: a -> a -> a -> a -> a -> a -> a -> DayOfWeekMatch a #
Build a DayOfWeekMatch
from seven (7) values.
buildMonthMatch :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> MonthMatch a #
Build a MonthMatch
from twelve (12) values.
buildUnboxedMonthMatch :: Unbox a => a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> UnboxedMonthMatch a #
Build an UnboxedMonthMatch
from twelve (12) values.
caseDayOfWeek :: DayOfWeekMatch a -> DayOfWeek -> a #
Match a DayOfWeek
against a DayOfWeekMatch
.
caseMonth :: MonthMatch a -> Month -> a #
Match a Month
against a MonthMatch
.
caseUnboxedMonth :: Unbox a => UnboxedMonthMatch a -> Month -> a #
Match a Month
against an UnboxedMonthMatch
.
Format
The formats provided is this module are language-agnostic. To find meridiem formats and month formats, look in a language-specific module.
w3c :: DatetimeFormat #
The W3C DatetimeFormat
.
>>>
encode_YmdHMS SubsecondPrecisionAuto w3c (timeToDatetime (timeFromYmdhms 2014 2 26 17 58 52))
"2014-02-26T17:58:52"
\(s :: SubsecondPrecision) (dt :: Datetime) -> isJust (decode_YmdHMS w3c (encode_YmdHMS s w3c dt))
slash :: DatetimeFormat #
A DatetimeFormat
that separates the members of
the Date
by slashes.
>>>
encode_YmdHMS SubsecondPrecisionAuto slash (timeToDatetime (timeFromYmdhms 2014 2 26 17 58 52))
"2014/02/26 17:58:52"
\(s :: SubsecondPrecision) (dt :: Datetime) -> isJust (decode_YmdHMS slash (encode_YmdHMS s slash dt))
A DatetimeFormat
that separates the members of
the Date
by hyphens.
>>>
encode_YmdHMS SubsecondPrecisionAuto hyphen (timeToDatetime (timeFromYmdhms 2014 2 26 17 58 52))
"2014-02-26 17:58:52"
\(s :: SubsecondPrecision) (dt :: Datetime) -> isJust (decode_YmdHMS hyphen (encode_YmdHMS s hyphen dt))
A DatetimeFormat
with no separators, except for a
T
between the Date
and Time
.
>>>
encode_YmdHMS SubsecondPrecisionAuto compact (timeToDatetime (timeFromYmdhms 2014 2 26 17 58 52))
"20140226T175852"
\(s :: SubsecondPrecision) (dt :: Datetime) -> isJust (decode_YmdHMS compact (encode_YmdHMS s compact dt))
Months
Days of Week
Utility
Arguments
:: Bool | Is this a leap year? |
-> Month | Month of year |
-> Int |
Return the number of days in a given month.
isLeapYear :: Year -> Bool #
observedOffsets :: Vector Offset #
All UTC time offsets. See List of UTC time offsets.
Textual Conversion
Date
Text
builder_Ymd :: Maybe Char -> Date -> Builder #
Given a Date
and a separator, construct a Text
Builder
corresponding to Year/Month/Day encoding.
builder_Dmy :: Maybe Char -> Date -> Builder #
Given a Date
and a separator, construct a Text
Builder
corresponding to a Day/Month/Year encoding.
builder_HMS :: SubsecondPrecision -> Maybe Char -> TimeOfDay -> Builder #
Given a SubsecondPrecision
and a separator, construct a
Text
Builder
corresponding to an Hour/Minute/Second
encoding.
parser_Ymd :: Maybe Char -> Parser Date #
Parse a Year/Month/Day-encoded Date
that uses the
given separator.
parser_Mdy :: Maybe Char -> Parser Date #
Parse a Month/Day/Year-encoded Date
that uses the
given separator.
parser_Dmy :: Maybe Char -> Parser Date #
Parse a Day/Month/Year-encoded Date
that uses the
given separator.
UTF-8 ByteString
builderUtf8_Ymd :: Maybe Char -> Date -> Builder #
Given a Date
and a separator, construct a ByteString
Builder
corresponding to a Day/Month/Year encoding.
parserUtf8_Ymd :: Maybe Char -> Parser Date #
Parse a Year/Month/Day-encoded Date
that uses the
given separator.
Time of Day
Text
builder_IMS_p :: MeridiemLocale Text -> SubsecondPrecision -> Maybe Char -> TimeOfDay -> Builder #
Given a MeridiemLocale
, a SubsecondPrecision
, and a separator,
construct a Text
Builder
according to an IMS encoding.
This differs from builder_IMSp
in that their is a space
between the seconds and locale.
builder_IMSp :: MeridiemLocale Text -> SubsecondPrecision -> Maybe Char -> TimeOfDay -> Builder #
Given a MeridiemLocale
, a SubsecondPrecision
, and a separator,
construct a Text
Builder
according to an IMS encoding.
parser_HMS :: Maybe Char -> Parser TimeOfDay #
Parse an Hour/Minute/Second-encoded TimeOfDay
that uses
the given separator.
parser_HMS_opt_S :: Maybe Char -> Parser TimeOfDay #
Parses text that is formatted as either of the following:
%H:%M
%H:%M:%S
That is, the seconds and subseconds part is optional. If it is
not provided, it is assumed to be zero. This format shows up
in Google Chrome's datetime-local
inputs.
UTF-8 ByteString
builderUtf8_HMS :: SubsecondPrecision -> Maybe Char -> TimeOfDay -> Builder #
Given a SubsecondPrecision
and a separator, construct a ByteString
Builder
corresponding to an Hour/Month/Second encoding of the given TimeOfDay
.
builderUtf8_IMS_p :: MeridiemLocale ByteString -> SubsecondPrecision -> Maybe Char -> TimeOfDay -> Builder #
Given a MeridiemLocale
, a SubsecondPrecision
, and a separator, construct a ByteString
Builder
corresponding to an IMS encoding of the given TimeOfDay
. This differs from builderUtf8_IMSp
in that
there is a space between the seconds and locale.
builderUtf8_IMSp :: MeridiemLocale ByteString -> SubsecondPrecision -> Maybe Char -> TimeOfDay -> Builder #
Given a MeridiemLocale
, a SubsecondPrecision
, and a separator, construct a ByteString
Builder
corresponding to an IMS encoding of the given TimeOfDay
.
parserUtf8_HMS :: Maybe Char -> Parser TimeOfDay #
Parse an Hour/Minute/Second-encoded TimeOfDay
that uses
the given separator.
parserUtf8_HMS_opt_S :: Maybe Char -> Parser TimeOfDay #
Parses text that is formatted as either of the following:
%H:%M
%H:%M:%S
That is, the seconds and subseconds part is optional. If it is
not provided, it is assumed to be zero. This format shows up
in Google Chrome's datetime-local
inputs.
zeptoUtf8_HMS :: Maybe Char -> Parser TimeOfDay #
Parse a TimeOfDay
that was encoded using
the given separator.
Datetime
Text
builder_DmyHMS :: SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder #
Given a SubsecondPrecision
and a DatetimeFormat
, construct a
Text
Builder
corresponding to a
Day/Month/Year,Hour/Minute/Second encoding of the given Datetime
.
builder_DmyIMSp :: MeridiemLocale Text -> SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder #
Given a MeridiemLocale
, a SubsecondPrecision
,
and a DatetimeFormat
, construct a Text
Builder
corresponding to a Day/Month/Year,IMS encoding of the given
Datetime
.
builder_DmyIMS_p :: MeridiemLocale Text -> SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder #
Given a MeridiemLocale
, a SubsecondPrecision
,
and a DatetimeFormat
, construct a Text
Builder
corresponding to a Day/Month/Year,IMS encoding of the given
Datetime
. This differs from builder_DmyIMSp
in that
it adds a space between the locale and seconds.
builder_YmdHMS :: SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder #
Given a SubsecondPrecision
and a DatetimeFormat
, construct
a Text
Builder
corresponding to a
Year/Month/Day,Hour/Minute/Second encoding of the given Datetime
.
builder_YmdIMSp :: MeridiemLocale Text -> SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder #
Given a MeridiemLocale
, a SubsecondPrecision
, and a
DatetimeFormat
, construct a Text
Builder
that
corresponds to a Year/Month/Day,IMS encoding of the
given Datetime
.
builder_YmdIMS_p :: MeridiemLocale Text -> SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder #
Given a MeridiemLocale
, a SubsecondPrecision
, and a
DatetimeFormat
, construct a Text
Builder
that
corresponds to a Year/Month/Day,IMS encoding of the
given Datetime
. This inserts a space between the locale
and seconds.
builderW3C :: Datetime -> Builder #
Construct a Text
Builder
corresponding to the W3C
encoding of the given Datetime
.
encode_DmyHMS :: SubsecondPrecision -> DatetimeFormat -> Datetime -> Text #
Given a SubsecondPrecision
and DatetimeFormat
, construct
Text
that corresponds to a Day/Month/Year,Hour/Minute/Second
encoding of the given Datetime
.
encode_DmyIMS_p :: MeridiemLocale Text -> SubsecondPrecision -> DatetimeFormat -> Datetime -> Text #
Given a MeridiemLocale
, a SubsecondPrecision
, and a
DatetimeFormat
, construct Text
that corresponds to a
Day/Month/Year,IMS encoding of the given Datetime
. This
inserts a space between the locale and seconds.
encode_YmdHMS :: SubsecondPrecision -> DatetimeFormat -> Datetime -> Text #
Given a SubsecondPrecision
and DatetimeFormat
, construct
Text
that corresponds to a Year/Month/Day,Hour/Minute/Second
encoding of the given Datetime
.
encode_YmdIMS_p :: MeridiemLocale Text -> SubsecondPrecision -> DatetimeFormat -> Datetime -> Text #
Given a MeridiemLocale
, a SubsecondPrecision
, and a
DatetimeFormat
, construct Text
that corresponds to a
Year/Month/Day,IMS encoding of the given Datetime
. This
inserts a space between the locale and seconds.
parser_DmyHMS :: DatetimeFormat -> Parser Datetime #
Parse a Day/Month/Year,Hour/Minute/Second-encoded Datetime
that was encoded with the given DatetimeFormat
.
parser_YmdHMS :: DatetimeFormat -> Parser Datetime #
Parses a Year/Month/Day,Hour/Minute/Second-encoded Datetime
that was encoded using the given DatetimeFormat
.
parser_YmdHMS_opt_S :: DatetimeFormat -> Parser Datetime #
Parses text that is formatted as either of the following:
%H:%M
%H:%M:%S
That is, the seconds and subseconds part is optional. If it is
not provided, it is assumed to be zero. This format shows up
in Google Chrome's datetime-local
inputs.
parser_DmyHMS_opt_S :: DatetimeFormat -> Parser Datetime #
Parses text that is formatted as either of the following:
%H:%M
%H:%M:%S
That is, the seconds and subseconds part is optional. If it is
not provided, it is assumed to be zero. This format shows up
in Google Chrome's datetime-local
inputs.
decode_DmyHMS :: DatetimeFormat -> Text -> Maybe Datetime #
Decode a Day/Month/Year,Hour/Minute/Second-encoded Datetime
from Text
that was encoded with the given DatetimeFormat
.
decode_YmdHMS :: DatetimeFormat -> Text -> Maybe Datetime #
Decode a Year/Month/Day,Hour/Minute/Second-encoded Datetime
from Text
that was encoded with the given DatetimeFormat
.
decode_YmdHMS_opt_S :: DatetimeFormat -> Text -> Maybe Datetime #
Parses text that is formatted as either of the following:
%H:%M
%H:%M:%S
That is, the seconds and subseconds part is optional. If it is
not provided, it is assumed to be zero. This format shows up
in Google Chrome's datetime-local
inputs.
decode_DmyHMS_opt_S :: DatetimeFormat -> Text -> Maybe Datetime #
Parses text that is formatted as either of the following:
%H:%M
%H:%M:%S
That is, the seconds and subseconds part is optional. If it is
not provided, it is assumed to be zero. This format shows up
in Google Chrome's datetime-local
inputs.
UTF-8 ByteString
encodeUtf8_YmdHMS :: SubsecondPrecision -> DatetimeFormat -> Datetime -> ByteString #
Given a SubsecondPrecision
and a DatetimeFormat
, construct
a ByteString
corresponding to a Year/Month/Day,Hour/Minute/Second
encoding of the given Datetime
.
encodeUtf8_YmdIMS_p :: MeridiemLocale ByteString -> SubsecondPrecision -> DatetimeFormat -> Datetime -> ByteString #
Given a MeridiemLocale
, a SubsecondPrecision
, and a DatetimeFormat
,
construct a ByteString
corresponding to a Year/Month/Day,IMS encoding
of the given Datetime
. This inserts a space between the locale and
seconds.
builderUtf8_YmdHMS :: SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder #
Given a SubsecondPrecision
and a DatetimeFormat
, construct
a ByteString
Builder
corresponding to a
Year/Month/Day,Hour/Minute/Second encoding of the
given Datetime
.
builderUtf8_YmdIMSp :: MeridiemLocale ByteString -> SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder #
Given a SubsecondPrecision
and a DatetimeFormat
, construct
a ByteString
Builder
corresponding to a
Year/Month/Day,IMS encoding of the given Datetime
.
builderUtf8_YmdIMS_p :: MeridiemLocale ByteString -> SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder #
Given a SubsecondPrecision
and a DatetimeFormat
, construct
a ByteString
Builder
corresponding to a
Year/Month/Day,IMS encoding of the given Datetime
. This inserts
a space between the locale and seconds.
builderUtf8W3C :: Datetime -> Builder #
Construct a ByteString
Builder
corresponding to
a W3C encoding of the given Datetime
.
decodeUtf8_YmdHMS :: DatetimeFormat -> ByteString -> Maybe Datetime #
Decode a Year/Month/Day,Hour/Minute/Second-encoded Datetime
from
a ByteString
.
decodeUtf8_YmdHMS_opt_S :: DatetimeFormat -> ByteString -> Maybe Datetime #
Parses text that is formatted as either of the following:
%H:%M
%H:%M:%S
That is, the seconds and subseconds part is optional. If it is
not provided, it is assumed to be zero. This format shows up
in Google Chrome's datetime-local
inputs.
parserUtf8_YmdHMS :: DatetimeFormat -> Parser Datetime #
Parse a Year/Month/Day,Hour/Minute/Second-encoded Datetime
that was
encoded using the given DatetimeFormat
.
parserUtf8_YmdHMS_opt_S :: DatetimeFormat -> Parser Datetime #
Parses text that is formatted as either of the following:
%H:%M
%H:%M:%S
That is, the seconds and subseconds part is optional. If it is
not provided, it is assumed to be zero. This format shows up
in Google Chrome's datetime-local
inputs.
zeptoUtf8_YmdHMS :: DatetimeFormat -> Parser Datetime #
Parse a Datetime
that was encoded using the
given DatetimeFormat
.
Offset Datetime
Text
encode_YmdHMSz :: OffsetFormat -> SubsecondPrecision -> DatetimeFormat -> OffsetDatetime -> Text #
Given an OffsetFormat
, a SubsecondPrecision
,
and a DatetimeFormat
, construct Text
corresponding to
the Year/Month/Day,Hour/Minute/Second-encoding of
the given OffsetDatetime
.
encode_DmyHMSz :: OffsetFormat -> SubsecondPrecision -> DatetimeFormat -> OffsetDatetime -> Text #
Given an OffsetFormat
, a SubsecondPrecision
, and a
DatetimeFormat
, construct Text
corresponding to the
Day/Month/Year,Hour/Minute/Second encoding of the given
OffsetDatetime
.
builder_YmdHMSz :: OffsetFormat -> SubsecondPrecision -> DatetimeFormat -> OffsetDatetime -> Builder #
Given an OffsetFormat
, a SubsecondPrecision
, and
a DatetimeFormat
, construct a Text
Builder
corresponding to a Year/Month/Day,Hour/Minute/Second encoding
of the given OffsetDatetime
.
builder_DmyHMSz :: OffsetFormat -> SubsecondPrecision -> DatetimeFormat -> OffsetDatetime -> Builder #
Given an OffsetFormat
, a SubsecondPrecision
, and a
DatetimeFormat
, construct a Text
Builder
corresponding
to the Day/Month/Year,Hour/Minute/Second-encoding of
the given OffsetDatetime
.
parser_YmdHMSz :: OffsetFormat -> DatetimeFormat -> Parser OffsetDatetime #
Parse a Year/Month/Day,Hour/Minute/Second-encoded OffsetDatetime
that was encoded using the given OffsetFormat
and DatetimeFormat
.
parser_DmyHMSz :: OffsetFormat -> DatetimeFormat -> Parser OffsetDatetime #
Parse a Day/Month/Year,Hour/Minute/Second-encoded OffsetDatetime
that was encoded using the given OffsetFormat
and DatetimeFormat
.
builder_YmdIMS_p_z :: OffsetFormat -> MeridiemLocale Text -> SubsecondPrecision -> DatetimeFormat -> OffsetDatetime -> Builder #
Given an OffsetFormat
, a MeridiemLocale
, a
SubsecondPrecision
, and DatetimeFormat
, construct a
Text
Builder
corresponding to a Year/Month/Day,IMS-encoding
of the given OffsetDatetime
.
builder_DmyIMS_p_z :: OffsetFormat -> MeridiemLocale Text -> SubsecondPrecision -> DatetimeFormat -> OffsetDatetime -> Builder #
Given an OffsetFormat
, a MeridiemLocale
, a
SubsecondPrecision
, and a DatetimeFormat
, construct a Text
Builder
corresponding to the Day/Month/Year,IMS encoding
of the given OffsetDatetime
.
builderW3Cz :: OffsetDatetime -> Builder #
Construct a Text
Builder
corresponding to the w3c-formatting
of the given OffsetDatetime
.
UTF-8 ByteString
builderUtf8_YmdHMSz :: OffsetFormat -> SubsecondPrecision -> DatetimeFormat -> OffsetDatetime -> Builder #
Given an OffsetFormat
, a SubsecondPrecision
, and a
DatetimeFormat
, construct a ByteString
Builder
corresponding to the Year/Month/Day,Hour/Minute/Second
encoding of the given OffsetDatetime
.
parserUtf8_YmdHMSz :: OffsetFormat -> DatetimeFormat -> Parser OffsetDatetime #
Parse a Year/Month/Day,Hour/Minute/Second-encoded OffsetDatetime
that was encoded using the given OffsetFormat
and
DatetimeFormat
.
builderUtf8_YmdIMS_p_z :: OffsetFormat -> MeridiemLocale ByteString -> SubsecondPrecision -> DatetimeFormat -> OffsetDatetime -> Builder #
Given an OffsetFormat
, a 'MeridiemLocale, a SubsecondPrecision
,
and a DatetimeFormat
, construct a ByteString
Builder
corresponding to a Year/Month/Day,IMS-encoded OffsetDatetime
.
builderUtf8W3Cz :: OffsetDatetime -> Builder #
Construct a ByteString
Builder
corresponding to the W3C
encoding of the given Datetime
.
Offset
Text
encodeOffset :: OffsetFormat -> Offset -> Text #
Encode an Offset
to Text
using the given OffsetFormat
.
builderOffset :: OffsetFormat -> Offset -> Builder #
Construct a Builder
corresponding to the given Offset
encoded using the given OffsetFormat
.
decodeOffset :: OffsetFormat -> Text -> Maybe Offset #
Decode an Offset
from Text
that was encoded
using the given OffsetFormat
.
parserOffset :: OffsetFormat -> Parser Offset #
Parse an Offset
that was encoded using the given OffsetFormat
.
UTF-8 ByteString
encodeOffsetUtf8 :: OffsetFormat -> Offset -> ByteString #
Encode an Offset
as a ByteString
using the given OffsetFormat
.
builderOffsetUtf8 :: OffsetFormat -> Offset -> Builder #
Construct a ByteString
Builder
corresponding to the
encoding of an Offset
using the given OffsetFormat
.
decodeOffsetUtf8 :: OffsetFormat -> ByteString -> Maybe Offset #
Decode an Offset
from a ByteString
that was encoded using the given
OffsetFormat
.
parserOffsetUtf8 :: OffsetFormat -> Parser Offset #
Parse an Offset
that was encoded using the given
OffsetFormat
.
Timespan
Text
encodeTimespan :: SubsecondPrecision -> Timespan -> Text #
Encode a Timespan
as Text
using the given SubsecondPrecision
.
builderTimespan :: SubsecondPrecision -> Timespan -> Builder #
Construct a Text
Builder
corresponding to an encoding
of the given Timespan
using the given SubsecondPrecision
.
UTF-8 ByteString
encodeTimespanUtf8 :: SubsecondPrecision -> Timespan -> ByteString #
Given a SubsecondPrecision
, construct a ByteString
corresponding
to an encoding of the given Timespan
.
builderTimespanUtf8 :: SubsecondPrecision -> Timespan -> Builder #
Given a SubsecondPrecision
, construct a ByteString
Builder
corresponding to an encoding of the given Timespan
.
TimeInterval
within :: Time -> TimeInterval -> Bool #
Is the given Time
within the TimeInterval
?
timeIntervalToTimespan :: TimeInterval -> Timespan #
Convert a TimeInterval
to a Timespan
. This is equivalent to width
.
whole :: TimeInterval #
The TimeInterval
that covers the entire range of Time
s that Chronos supports.
\(t :: Time) -> within t whole
singleton :: Time -> TimeInterval #
The singleton (degenerate) TimeInterval
.
lowerBound :: TimeInterval -> Time #
Get the lower bound of the TimeInterval
.
upperBound :: TimeInterval -> Time #
Get the upper bound of the TimeInterval
.
width :: TimeInterval -> Timespan #
The width of the TimeInterval
. This is equivalent to timeIntervalToTimespan
.
timeIntervalBuilder :: Time -> Time -> TimeInterval #
A smart constructor for TimeInterval
. In general, you should prefer using this
over the TimeInterval
constructor, since it maintains the invariant that
.lowerBound
interval <=
upperBound
interval
(...) :: Time -> Time -> TimeInterval infix 3 #
An infix timeIntervalBuilder
.
Types
A day represented as the modified Julian date, the number of days since midnight on November 17, 1858.
Instances
Enum Day # | |
Eq Day # | |
Ord Day # | |
Read Day # | |
Show Day # | |
Hashable Day # | |
ToJSON Day # | |
FromJSON Day # | |
Storable Day # | |
Prim Day # | |
Defined in Chronos Methods alignment# :: Day -> Int# # indexByteArray# :: ByteArray# -> Int# -> Day # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (#State# s, Day#) # writeByteArray# :: MutableByteArray# s -> Int# -> Day -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Day -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Day # readOffAddr# :: Addr# -> Int# -> State# s -> (#State# s, Day#) # writeOffAddr# :: Addr# -> Int# -> Day -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Day -> State# s -> State# s # | |
Torsor Day Int # | |
The day of the week.
Constructors
DayOfWeek | |
Fields
|
newtype DayOfMonth #
The day of the month.
Constructors
DayOfMonth | |
Fields
|
Instances
The day of the year.
Constructors
DayOfYear | |
Fields
|
Instances
Eq DayOfYear # | |
Ord DayOfYear # | |
Defined in Chronos | |
Read DayOfYear # | |
Show DayOfYear # | |
Prim DayOfYear # | |
Defined in Chronos Methods sizeOf# :: DayOfYear -> Int# # alignment# :: DayOfYear -> Int# # indexByteArray# :: ByteArray# -> Int# -> DayOfYear # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (#State# s, DayOfYear#) # writeByteArray# :: MutableByteArray# s -> Int# -> DayOfYear -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> DayOfYear -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> DayOfYear # readOffAddr# :: Addr# -> Int# -> State# s -> (#State# s, DayOfYear#) # writeOffAddr# :: Addr# -> Int# -> DayOfYear -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> DayOfYear -> State# s -> State# s # |
The month of the year.
Instances
The number of years elapsed since the beginning of the Common Era.
A UTC offset.
POSIX time with nanosecond resolution.
Instances
Bounded Time # | |
Eq Time # | |
Ord Time # | |
Read Time # | |
Show Time # | |
Hashable Time # | |
ToJSON Time # | |
FromJSON Time # | |
Storable Time # | |
Defined in Chronos | |
Prim Time # | |
Defined in Chronos Methods alignment# :: Time -> Int# # indexByteArray# :: ByteArray# -> Int# -> Time # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (#State# s, Time#) # writeByteArray# :: MutableByteArray# s -> Int# -> Time -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Time -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Time # readOffAddr# :: Addr# -> Int# -> State# s -> (#State# s, Time#) # writeOffAddr# :: Addr# -> Int# -> Time -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Time -> State# s -> State# s # | |
Torsor Time Timespan # | |
newtype DayOfWeekMatch a #
Match a DayOfWeek
. By match
, we mean that a DayOfWeekMatch
is a mapping from the integer value of a DayOfWeek
to some value
of type a
. You should construct a DayOfWeekMatch
with
buildDayOfWeekMatch
, and match it using caseDayOfWeek
.
Constructors
DayOfWeekMatch | |
Fields
|
newtype MonthMatch a #
Match a Month
. By match
, we mean that a MonthMatch
is
a mapping from the integer value of a Month
to some value of
type a
. You should construct a MonthMatch
with
buildMonthMatch
, and match it using caseMonth
.
Constructors
MonthMatch | |
Fields
|
newtype UnboxedMonthMatch a #
Like MonthMatch
, but the matched value can have an instance of
Unbox
.
Constructors
UnboxedMonthMatch | |
Fields |
A timespan. This is represented internally as a number of nanoseconds.
Constructors
Timespan | |
Fields
|
data SubsecondPrecision #
The precision used when encoding seconds to a human-readable format.
Constructors
SubsecondPrecisionAuto | Rounds to second, millisecond, microsecond, or nanosecond |
SubsecondPrecisionFixed !Int | Specify number of places after decimal |
Instances
A date as represented by the Gregorian calendar.
data OrdinalDate #
An OrdinalDate
is a Year
and the number of days elapsed
since the Year
began.
Constructors
OrdinalDate | |
Fields |
Instances
A month and the day of the month. This does not actually represent a specific date, since this recurs every year.
Constructors
MonthDate | |
Fields
|
Constructors
Datetime | |
Fields
|
data OffsetDatetime #
Constructors
OffsetDatetime | |
Fields |
Instances
Eq OffsetDatetime # | |
Defined in Chronos Methods (==) :: OffsetDatetime -> OffsetDatetime -> Bool (/=) :: OffsetDatetime -> OffsetDatetime -> Bool | |
Ord OffsetDatetime # | |
Defined in Chronos Methods compare :: OffsetDatetime -> OffsetDatetime -> Ordering (<) :: OffsetDatetime -> OffsetDatetime -> Bool (<=) :: OffsetDatetime -> OffsetDatetime -> Bool (>) :: OffsetDatetime -> OffsetDatetime -> Bool (>=) :: OffsetDatetime -> OffsetDatetime -> Bool max :: OffsetDatetime -> OffsetDatetime -> OffsetDatetime min :: OffsetDatetime -> OffsetDatetime -> OffsetDatetime | |
Read OffsetDatetime # | |
Defined in Chronos Methods readsPrec :: Int -> ReadS OffsetDatetime # readList :: ReadS [OffsetDatetime] # readPrec :: ReadPrec OffsetDatetime # readListPrec :: ReadPrec [OffsetDatetime] # | |
Show OffsetDatetime # | |
Defined in Chronos Methods showsPrec :: Int -> OffsetDatetime -> ShowS show :: OffsetDatetime -> String showList :: [OffsetDatetime] -> ShowS |
A time of day with nanosecond resolution.
Constructors
TimeOfDay | |
Fields
|
data DatetimeFormat #
The format of a Datetime
. In particular
this provides separators for parts of the Datetime
and nothing else.
Constructors
DatetimeFormat | |
Fields
|
Instances
Eq DatetimeFormat # | |
Defined in Chronos Methods (==) :: DatetimeFormat -> DatetimeFormat -> Bool (/=) :: DatetimeFormat -> DatetimeFormat -> Bool | |
Ord DatetimeFormat # | |
Defined in Chronos Methods compare :: DatetimeFormat -> DatetimeFormat -> Ordering (<) :: DatetimeFormat -> DatetimeFormat -> Bool (<=) :: DatetimeFormat -> DatetimeFormat -> Bool (>) :: DatetimeFormat -> DatetimeFormat -> Bool (>=) :: DatetimeFormat -> DatetimeFormat -> Bool max :: DatetimeFormat -> DatetimeFormat -> DatetimeFormat min :: DatetimeFormat -> DatetimeFormat -> DatetimeFormat | |
Read DatetimeFormat # | |
Defined in Chronos Methods readsPrec :: Int -> ReadS DatetimeFormat # readList :: ReadS [DatetimeFormat] # readPrec :: ReadPrec DatetimeFormat # readListPrec :: ReadPrec [DatetimeFormat] # | |
Show DatetimeFormat # | |
Defined in Chronos Methods showsPrec :: Int -> DatetimeFormat -> ShowS show :: DatetimeFormat -> String showList :: [DatetimeFormat] -> ShowS |
data OffsetFormat #
Formatting settings for a timezone offset.
Constructors
OffsetFormatColonOff |
|
OffsetFormatColonOn |
|
OffsetFormatSecondsPrecision |
|
OffsetFormatColonAuto |
|
Instances
Bounded OffsetFormat # | |
Defined in Chronos | |
Enum OffsetFormat # | |
Defined in Chronos Methods succ :: OffsetFormat -> OffsetFormat pred :: OffsetFormat -> OffsetFormat toEnum :: Int -> OffsetFormat fromEnum :: OffsetFormat -> Int enumFrom :: OffsetFormat -> [OffsetFormat] enumFromThen :: OffsetFormat -> OffsetFormat -> [OffsetFormat] enumFromTo :: OffsetFormat -> OffsetFormat -> [OffsetFormat] enumFromThenTo :: OffsetFormat -> OffsetFormat -> OffsetFormat -> [OffsetFormat] | |
Eq OffsetFormat # | |
Defined in Chronos | |
Ord OffsetFormat # | |
Defined in Chronos Methods compare :: OffsetFormat -> OffsetFormat -> Ordering (<) :: OffsetFormat -> OffsetFormat -> Bool (<=) :: OffsetFormat -> OffsetFormat -> Bool (>) :: OffsetFormat -> OffsetFormat -> Bool (>=) :: OffsetFormat -> OffsetFormat -> Bool max :: OffsetFormat -> OffsetFormat -> OffsetFormat min :: OffsetFormat -> OffsetFormat -> OffsetFormat | |
Read OffsetFormat # | |
Defined in Chronos Methods readsPrec :: Int -> ReadS OffsetFormat # readList :: ReadS [OffsetFormat] # readPrec :: ReadPrec OffsetFormat # readListPrec :: ReadPrec [OffsetFormat] # | |
Show OffsetFormat # | |
Defined in Chronos Methods showsPrec :: Int -> OffsetFormat -> ShowS show :: OffsetFormat -> String showList :: [OffsetFormat] -> ShowS | |
Generic OffsetFormat # | |
Defined in Chronos Associated Types type Rep OffsetFormat :: Type -> Type | |
type Rep OffsetFormat # | |
Defined in Chronos type Rep OffsetFormat = D1 (MetaData "OffsetFormat" "Chronos" "chronos-1.0.7-BhVazY2rKvdBfduunCFQXE" False) ((C1 (MetaCons "OffsetFormatColonOff" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "OffsetFormatColonOn" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "OffsetFormatSecondsPrecision" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "OffsetFormatColonAuto" PrefixI False) (U1 :: Type -> Type))) |
data DatetimeLocale a #
Locale-specific formatting for weekdays and months. The
type variable will likely be instantiated to Text
or ByteString
.
Constructors
DatetimeLocale | |
Fields
|
data MeridiemLocale a #
Locale-specific formatting for AM and PM.
Constructors
MeridiemLocale | |
Fields
|
Instances
data TimeInterval #
A TimeInterval represents a start and end time.
It can sometimes be more ergonomic than the Torsor
API when
you only care about whether or not a Time
is within a certain range.
To construct a TimeInterval
, it is best to use timeIntervalBuilder
,
which maintains the invariant that
(all functions that act on lowerBound
interval <=
upperBound
intervalTimeInterval
s assume this invariant).
Constructors
TimeInterval !Time !Time |
Instances
Bounded TimeInterval # | |
Defined in Chronos | |
Eq TimeInterval # | |
Defined in Chronos | |
Ord TimeInterval # | |
Defined in Chronos Methods compare :: TimeInterval -> TimeInterval -> Ordering (<) :: TimeInterval -> TimeInterval -> Bool (<=) :: TimeInterval -> TimeInterval -> Bool (>) :: TimeInterval -> TimeInterval -> Bool (>=) :: TimeInterval -> TimeInterval -> Bool max :: TimeInterval -> TimeInterval -> TimeInterval min :: TimeInterval -> TimeInterval -> TimeInterval | |
Read TimeInterval # | |
Defined in Chronos Methods readsPrec :: Int -> ReadS TimeInterval # readList :: ReadS [TimeInterval] # readPrec :: ReadPrec TimeInterval # readListPrec :: ReadPrec [TimeInterval] # | |
Show TimeInterval # | |
Defined in Chronos Methods showsPrec :: Int -> TimeInterval -> ShowS show :: TimeInterval -> String showList :: [TimeInterval] -> ShowS |