-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | A performant time library
--
-- Performance-oriented time library for haskell. The main differences
-- between this and "time" are that this library:
--
--
-- - Uses machine integers where possible. This means that some
-- time-related arithmetic should be faster. It also means that the types
-- are incapable of representing times that are very far in the future or
-- the past.
-- - Provides ToJSON and FromJSON instances for json
-- serialization.
-- - Provides Unbox instances for working with unboxed
-- vectors.
-- - Uses normal non-overloaded haskell functions for encoding and
-- decoding time. It provides "attoparsec" parsers for both Text
-- and ByteString. Additionally, it provides functions for
-- encoding time as Text or ByteString. The "time" library
-- uses accomplishes these with the Data.Time.Format module, which
-- uses UNIX-style datetime format strings. It is expected that the
-- approach taken in this library is faster and catches more mistakes at
-- compile time at the cost of being less expressive.
-- - Only provides nanosecond resolution instead of picosecond
-- resolution.
--
@package chronos
@version 0.4
-- | Data types for representing different date and time-related
-- information.
--
-- Internally, the types Int and Int64 are used to
-- represent everything. These are used even when negative values are not
-- appropriate and even if a smaller fixed-size integer could hold the
-- information. The only cases when Int64 is used are when it is
-- neccessary to represent values with numbers 2^29 or higher.
-- These are typically fields that represent nanoseconds.
--
-- Unlike the types in the venerable time library, the types
-- here do not allow the user to work with all dates. Since this library
-- uses fixed-precision integral values instead of Integer, all of
-- the usual problems with overflow should be considered. Notably,
-- PosixTime and TaiTime can only be used to represent time
-- between the years 1680 and 2260. All other types in this library
-- correctly represent time a million years before or after 1970.
--
-- The vector unbox instances, not yet available, will store data in a
-- reasonably compact manner. For example, the instance for Day
-- has three unboxed vectors: Int for the year, Int8 for
-- the month, and Int8 for the day. This only causes corruption of
-- data if the user is trying to use out-of-bounds values for the month
-- and the day. Users are advised to not use the data types provided here
-- to model non-existent times.
module Chronos.Types
-- | A day represented as the modified Julian date, the number of days
-- since midnight on November 17, 1858.
newtype Day
Day :: Int -> Day
[getDay] :: Day -> Int
-- | The day of the week.
newtype DayOfWeek
DayOfWeek :: Int -> DayOfWeek
[getDayOfWeek] :: DayOfWeek -> Int
-- | The day of the month.
newtype DayOfMonth
DayOfMonth :: Int -> DayOfMonth
[getDayOfMonth] :: DayOfMonth -> Int
-- | The day of the year.
newtype DayOfYear
DayOfYear :: Int -> DayOfYear
[getDayOfYear] :: DayOfYear -> Int
-- | The month of the year.
newtype Month
Month :: Int -> Month
[getMonth] :: Month -> Int
-- | The number of years elapsed since the beginning of the Common Era.
newtype Year
Year :: Int -> Year
[getYear] :: Year -> Int
newtype Offset
Offset :: Int -> Offset
[getOffset] :: Offset -> Int
-- | TAI time with nanosecond resolution.
newtype TaiTime
TaiTime :: Int64 -> TaiTime
[getTaiTime] :: TaiTime -> Int64
-- | POSIX time with nanosecond resolution.
newtype PosixTime
PosixTime :: Int64 -> PosixTime
[getPosixTime] :: PosixTime -> Int64
data UtcTime
UtcTime :: {-# UNPACK #-} !Day -> {-# UNPACK #-} !Int64 -> UtcTime
[utcTimeDate] :: UtcTime -> {-# UNPACK #-} !Day
[utcTimeNanoseconds] :: UtcTime -> {-# UNPACK #-} !Int64
newtype DayOfWeekMatch a
DayOfWeekMatch :: Vector a -> DayOfWeekMatch a
[getDayOfWeekMatch] :: DayOfWeekMatch a -> Vector a
newtype MonthMatch a
MonthMatch :: Vector a -> MonthMatch a
[getMonthMatch] :: MonthMatch a -> Vector a
newtype UnboxedMonthMatch a
UnboxedMonthMatch :: Vector a -> UnboxedMonthMatch a
[getUnboxedMonthMatch] :: UnboxedMonthMatch a -> Vector a
-- | A nanosecond duration.
newtype Nanoseconds
Nanoseconds :: Int64 -> Nanoseconds
[getNanoseconds] :: Nanoseconds -> Int64
-- | The precision used when encoding seconds to a human-readable format.
data SubsecondPrecision
-- | Rounds to second, millisecond, microsecond, or nanosecond
SubsecondPrecisionAuto :: SubsecondPrecision
-- | Specify number of places after decimal
SubsecondPrecisionFixed :: {-# UNPACK #-} !Int -> SubsecondPrecision
-- | A date as represented by the Gregorian calendar.
data Date
Date :: {-# UNPACK #-} !Year -> {-# UNPACK #-} !Month -> {-# UNPACK #-} !DayOfMonth -> Date
[dateYear] :: Date -> {-# UNPACK #-} !Year
[dateMonth] :: Date -> {-# UNPACK #-} !Month
[dateDay] :: Date -> {-# UNPACK #-} !DayOfMonth
-- | The year and number of days elapsed since the beginning it began.
data OrdinalDate
OrdinalDate :: {-# UNPACK #-} !Year -> {-# UNPACK #-} !DayOfYear -> OrdinalDate
[ordinalDateYear] :: OrdinalDate -> {-# UNPACK #-} !Year
[ordinalDateDayOfYear] :: OrdinalDate -> {-# UNPACK #-} !DayOfYear
-- | A month and the day of the month. This does not actually represent a
-- specific date, since this recurs every year.
data MonthDate
MonthDate :: {-# UNPACK #-} !Month -> {-# UNPACK #-} !DayOfMonth -> MonthDate
[monthDateMonth] :: MonthDate -> {-# UNPACK #-} !Month
[monthDateDay] :: MonthDate -> {-# UNPACK #-} !DayOfMonth
-- | A date as represented by the Gregorian calendar and a time of day.
data Datetime
Datetime :: {-# UNPACK #-} !Date -> {-# UNPACK #-} !TimeOfDay -> Datetime
[datetimeDate] :: Datetime -> {-# UNPACK #-} !Date
[datetimeTime] :: Datetime -> {-# UNPACK #-} !TimeOfDay
data OffsetDatetime
OffsetDatetime :: {-# UNPACK #-} !Datetime -> {-# UNPACK #-} !Offset -> OffsetDatetime
[offsetDatetimeDatetime] :: OffsetDatetime -> {-# UNPACK #-} !Datetime
[offsetDatetimeOffset] :: OffsetDatetime -> {-# UNPACK #-} !Offset
-- | A time of day with nanosecond resolution.
data TimeOfDay
TimeOfDay :: {-# UNPACK #-} !Int -> {-# UNPACK #-} !Int -> {-# UNPACK #-} !Int64 -> TimeOfDay
[timeOfDayHour] :: TimeOfDay -> {-# UNPACK #-} !Int
[timeOfDayMinute] :: TimeOfDay -> {-# UNPACK #-} !Int
[timeOfDayNanoseconds] :: TimeOfDay -> {-# UNPACK #-} !Int64
data DatetimeFormat
DatetimeFormat :: !(Maybe Char) -> !(Maybe Char) -> !(Maybe Char) -> DatetimeFormat
-- | Separator in the date
[datetimeFormatDateSeparator] :: DatetimeFormat -> !(Maybe Char)
-- | Separator between date and time
[datetimeFormatSeparator] :: DatetimeFormat -> !(Maybe Char)
-- | Separator in the time
[datetimeFormatTimeSeparator] :: DatetimeFormat -> !(Maybe Char)
-- | Formatting settings for a timezone offset.
data OffsetFormat
-- | %z (e.g., -0400)
OffsetFormatColonOff :: OffsetFormat
-- | %:z (e.g., -04:00)
OffsetFormatColonOn :: OffsetFormat
-- | %::z (e.g., -04:00:00)
OffsetFormatSecondsPrecision :: OffsetFormat
-- | %:::z (e.g., -04, +05:30)
OffsetFormatColonAuto :: OffsetFormat
-- | Locale-specific formatting for weekdays and months. The type variable
-- will likely be instantiated to Text or ByteString.
data DatetimeLocale a
DatetimeLocale :: !(DayOfWeekMatch a) -> !(DayOfWeekMatch a) -> !(MonthMatch a) -> !(MonthMatch a) -> DatetimeLocale a
-- | full weekdays starting with Sunday, 7 elements
[datetimeLocaleDaysOfWeekFull] :: DatetimeLocale a -> !(DayOfWeekMatch a)
-- | abbreviated weekdays starting with Sunday, 7 elements
[datetimeLocaleDaysOfWeekAbbreviated] :: DatetimeLocale a -> !(DayOfWeekMatch a)
-- | full months starting with January, 12 elements
[datetimeLocaleMonthsFull] :: DatetimeLocale a -> !(MonthMatch a)
-- | abbreviated months starting with January, 12 elements
[datetimeLocaleMonthsAbbreviated] :: DatetimeLocale a -> !(MonthMatch a)
-- | Locale-specific formatting for AM and PM.
data MeridiemLocale a
MeridiemLocale :: !a -> !a -> MeridiemLocale a
[meridiemLocaleAm] :: MeridiemLocale a -> !a
[meridiemLocalePm] :: MeridiemLocale a -> !a
instance GHC.Classes.Ord a => GHC.Classes.Ord (Chronos.Types.MeridiemLocale a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Chronos.Types.MeridiemLocale a)
instance GHC.Show.Show a => GHC.Show.Show (Chronos.Types.MeridiemLocale a)
instance GHC.Read.Read a => GHC.Read.Read (Chronos.Types.MeridiemLocale a)
instance GHC.Generics.Generic Chronos.Types.OffsetFormat
instance GHC.Enum.Bounded Chronos.Types.OffsetFormat
instance GHC.Enum.Enum Chronos.Types.OffsetFormat
instance GHC.Classes.Ord Chronos.Types.OffsetFormat
instance GHC.Classes.Eq Chronos.Types.OffsetFormat
instance GHC.Read.Read Chronos.Types.OffsetFormat
instance GHC.Show.Show Chronos.Types.OffsetFormat
instance GHC.Classes.Ord Chronos.Types.DatetimeFormat
instance GHC.Classes.Eq Chronos.Types.DatetimeFormat
instance GHC.Read.Read Chronos.Types.DatetimeFormat
instance GHC.Show.Show Chronos.Types.DatetimeFormat
instance GHC.Classes.Ord Chronos.Types.UtcTime
instance GHC.Classes.Eq Chronos.Types.UtcTime
instance GHC.Read.Read Chronos.Types.UtcTime
instance GHC.Show.Show Chronos.Types.UtcTime
instance GHC.Classes.Ord Chronos.Types.OffsetDatetime
instance GHC.Classes.Eq Chronos.Types.OffsetDatetime
instance GHC.Read.Read Chronos.Types.OffsetDatetime
instance GHC.Show.Show Chronos.Types.OffsetDatetime
instance GHC.Classes.Ord Chronos.Types.Datetime
instance GHC.Classes.Eq Chronos.Types.Datetime
instance GHC.Read.Read Chronos.Types.Datetime
instance GHC.Show.Show Chronos.Types.Datetime
instance GHC.Classes.Ord Chronos.Types.TimeOfDay
instance GHC.Classes.Eq Chronos.Types.TimeOfDay
instance GHC.Read.Read Chronos.Types.TimeOfDay
instance GHC.Show.Show Chronos.Types.TimeOfDay
instance GHC.Classes.Ord Chronos.Types.MonthDate
instance GHC.Classes.Eq Chronos.Types.MonthDate
instance GHC.Read.Read Chronos.Types.MonthDate
instance GHC.Show.Show Chronos.Types.MonthDate
instance GHC.Classes.Ord Chronos.Types.OrdinalDate
instance GHC.Classes.Eq Chronos.Types.OrdinalDate
instance GHC.Read.Read Chronos.Types.OrdinalDate
instance GHC.Show.Show Chronos.Types.OrdinalDate
instance GHC.Classes.Ord Chronos.Types.Date
instance GHC.Classes.Eq Chronos.Types.Date
instance GHC.Read.Read Chronos.Types.Date
instance GHC.Show.Show Chronos.Types.Date
instance Data.Aeson.Types.FromJSON.FromJSON Chronos.Types.Nanoseconds
instance Data.Aeson.Types.ToJSON.ToJSON Chronos.Types.Nanoseconds
instance GHC.Classes.Ord Chronos.Types.Nanoseconds
instance GHC.Classes.Eq Chronos.Types.Nanoseconds
instance GHC.Read.Read Chronos.Types.Nanoseconds
instance GHC.Show.Show Chronos.Types.Nanoseconds
instance GHC.Read.Read Chronos.Types.PosixTime
instance GHC.Show.Show Chronos.Types.PosixTime
instance GHC.Classes.Ord Chronos.Types.PosixTime
instance GHC.Classes.Eq Chronos.Types.PosixTime
instance Data.Hashable.Class.Hashable Chronos.Types.PosixTime
instance Data.Aeson.Types.ToJSON.ToJSON Chronos.Types.PosixTime
instance Data.Aeson.Types.FromJSON.FromJSON Chronos.Types.PosixTime
instance GHC.Read.Read Chronos.Types.TaiTime
instance GHC.Show.Show Chronos.Types.TaiTime
instance GHC.Classes.Ord Chronos.Types.TaiTime
instance GHC.Classes.Eq Chronos.Types.TaiTime
instance Data.Hashable.Class.Hashable Chronos.Types.TaiTime
instance Data.Aeson.Types.ToJSON.ToJSON Chronos.Types.TaiTime
instance Data.Aeson.Types.FromJSON.FromJSON Chronos.Types.TaiTime
instance GHC.Classes.Ord Chronos.Types.Offset
instance GHC.Classes.Eq Chronos.Types.Offset
instance GHC.Read.Read Chronos.Types.Offset
instance GHC.Show.Show Chronos.Types.Offset
instance GHC.Classes.Ord Chronos.Types.Year
instance GHC.Classes.Eq Chronos.Types.Year
instance GHC.Read.Read Chronos.Types.Year
instance GHC.Show.Show Chronos.Types.Year
instance Data.Primitive.Types.Prim Chronos.Types.Month
instance GHC.Classes.Ord Chronos.Types.Month
instance GHC.Classes.Eq Chronos.Types.Month
instance GHC.Read.Read Chronos.Types.Month
instance GHC.Show.Show Chronos.Types.Month
instance Data.Primitive.Types.Prim Chronos.Types.DayOfYear
instance GHC.Classes.Ord Chronos.Types.DayOfYear
instance GHC.Classes.Eq Chronos.Types.DayOfYear
instance GHC.Read.Read Chronos.Types.DayOfYear
instance GHC.Show.Show Chronos.Types.DayOfYear
instance GHC.Enum.Enum Chronos.Types.DayOfMonth
instance Data.Primitive.Types.Prim Chronos.Types.DayOfMonth
instance GHC.Classes.Ord Chronos.Types.DayOfMonth
instance GHC.Classes.Eq Chronos.Types.DayOfMonth
instance GHC.Read.Read Chronos.Types.DayOfMonth
instance GHC.Show.Show Chronos.Types.DayOfMonth
instance Data.Hashable.Class.Hashable Chronos.Types.DayOfWeek
instance GHC.Classes.Ord Chronos.Types.DayOfWeek
instance GHC.Classes.Eq Chronos.Types.DayOfWeek
instance GHC.Read.Read Chronos.Types.DayOfWeek
instance GHC.Show.Show Chronos.Types.DayOfWeek
instance Data.Aeson.Types.FromJSON.FromJSON Chronos.Types.Day
instance Data.Aeson.Types.ToJSON.ToJSON Chronos.Types.Day
instance GHC.Enum.Enum Chronos.Types.Day
instance Data.Hashable.Class.Hashable Chronos.Types.Day
instance GHC.Classes.Ord Chronos.Types.Day
instance GHC.Classes.Eq Chronos.Types.Day
instance GHC.Read.Read Chronos.Types.Day
instance GHC.Show.Show Chronos.Types.Day
instance GHC.Enum.Bounded Chronos.Types.Month
instance Data.Vector.Unboxed.Base.Unbox Chronos.Types.Month
instance Data.Vector.Generic.Mutable.Base.MVector Data.Vector.Unboxed.Base.MVector Chronos.Types.Month
instance Data.Vector.Generic.Base.Vector Data.Vector.Unboxed.Base.Vector Chronos.Types.Month
instance Data.Vector.Unboxed.Base.Unbox Chronos.Types.DayOfMonth
instance Data.Vector.Generic.Mutable.Base.MVector Data.Vector.Unboxed.Base.MVector Chronos.Types.DayOfMonth
instance Data.Vector.Generic.Base.Vector Data.Vector.Unboxed.Base.Vector Chronos.Types.DayOfMonth
module Chronos.Tai
epoch :: TaiTime
add :: Nanoseconds -> TaiTime -> TaiTime
diff :: TaiTime -> TaiTime -> Nanoseconds
-- | Functions that operate on Nanoseconds. All of these functions
-- have trivial implementations and are provided for convenience. This
-- module is intended to be imported qualified.
module Chronos.Nanoseconds
add :: Nanoseconds -> Nanoseconds -> Nanoseconds
scale :: Int64 -> Nanoseconds -> Nanoseconds
negate :: Nanoseconds -> Nanoseconds
fromSeconds :: Int64 -> Nanoseconds
fromMinutes :: Int64 -> Nanoseconds
fromHours :: Int64 -> Nanoseconds
fromDays :: Int64 -> Nanoseconds
fromWeeks :: Int64 -> Nanoseconds
module Chronos.Match
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
module Chronos.Internal.CTimespec
-- | Get the current POSIX time from the system clock.
getPosixNanoseconds :: IO Int64
instance Foreign.Storable.Storable Chronos.Internal.CTimespec.CTimespec
module Chronos.Internal
parseFixedDigits :: Int -> Parser Int
parseFixedDigitsIntBS :: Int -> Parser Int
raiseTenTo :: Int -> Int64
tenRaisedToSmallPowers :: Vector Int64
-- | Only provide positive numbers to this function.
indexTwoDigitTextBuilder :: Int -> Builder
-- | Only provide positive numbers to this function.
indexTwoDigitByteStringBuilder :: Int -> Builder
twoDigitByteStringBuilder :: Vector Builder
twoDigitTextBuilder :: Vector Builder
twoDigitStrings :: [String]
countDigits :: (Integral a) => a -> Int
clip :: (Ord t) => t -> t -> t -> t
module Chronos.Internal.Conversion
dayLengthInt64 :: Int64
nanosecondsInMinute :: Int64
-- | The first argument in the resulting tuple in a day adjustment. It
-- should be either -1, 0, or 1, as no offset should ever exceed 24
-- hours.
offsetTimeOfDay :: Offset -> TimeOfDay -> (Int, TimeOfDay)
nanosecondsSinceMidnightToTimeOfDay :: Int64 -> TimeOfDay
timeOfDayToNanosecondsSinceMidnight :: TimeOfDay -> Int64
dayToDate :: Day -> Date
utcTimeToOffsetDatetime :: Offset -> UtcTime -> OffsetDatetime
utcTimeToDatetime :: UtcTime -> Datetime
datetimeToUtcTime :: Datetime -> UtcTime
offsetDatetimeToUtcTime :: OffsetDatetime -> UtcTime
dateToDay :: Date -> Day
monthDateToDayOfYear :: Bool -> MonthDate -> DayOfYear
ordinalDateToDay :: OrdinalDate -> Day
isLeapYear :: Year -> Bool
dayOfYearToMonthAndDay :: Bool -> DayOfYear -> MonthDate
dayToOrdinalDate :: Day -> OrdinalDate
internalBuildDayOfWeekMatch :: a -> a -> a -> a -> a -> a -> a -> DayOfWeekMatch a
internalBuildMonthMatch :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> MonthMatch a
internalMatchMonth :: MonthMatch a -> Month -> a
monthLength :: Bool -> Month -> Int
leapYearMonthLength :: MonthMatch Int
normalYearMonthLength :: MonthMatch Int
leapYearDayOfYearDayOfMonthTable :: Vector DayOfMonth
normalYearDayOfYearDayOfMonthTable :: Vector DayOfMonth
leapYearDayOfYearMonthTable :: Vector Month
normalYearDayOfYearMonthTable :: Vector Month
addDay :: Int -> Day -> Day
diffDay :: Day -> Day -> Int
module Chronos.Month
month :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Month -> a
match :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> MonthMatch a
deconstruct :: MonthMatch a -> Month -> a
module Chronos.Locale.English.Text
datetimeW3 :: DatetimeFormat
datetimeSlash :: DatetimeFormat
datetimeHyphen :: DatetimeFormat
datetimeCompact :: DatetimeFormat
meridiemLower :: MeridiemLocale Text
meridiemUpper :: MeridiemLocale Text
meridiemLowerDotted :: MeridiemLocale Text
meridiemUpperDotted :: MeridiemLocale Text
monthFull :: MonthMatch Text
monthAbbreviated :: MonthMatch Text
module Chronos.Posix
epoch :: PosixTime
epochDay :: Day
dayLength :: Nanoseconds
add :: Nanoseconds -> PosixTime -> PosixTime
diff :: PosixTime -> PosixTime -> Nanoseconds
-- | This probably needs to be wrapped in a bunch of CPP like the one in
-- time is.
now :: IO PosixTime
-- | This may be wrong for dates before what we count as the first modified
-- julian day.
toUtc :: PosixTime -> UtcTime
fromUtc :: UtcTime -> PosixTime
toDatetime :: PosixTime -> Datetime
toOffsetDatetime :: Offset -> PosixTime -> OffsetDatetime
fromDatetime :: Datetime -> PosixTime
fromOffsetDatetime :: OffsetDatetime -> PosixTime
truncateToDay :: PosixTime -> Day
-- | The PosixTime at midnight on the given day.
fromDay :: Day -> PosixTime
module Chronos.Internal.Format
monthToZeroPaddedDigit :: Month -> Builder
zeroPadDayOfMonth :: DayOfMonth -> Builder
monthToZeroPaddedDigitBS :: Month -> Builder
zeroPadDayOfMonthBS :: DayOfMonth -> Builder
-- | Functions for encoding TimeOfDay to ByteString. Any
-- encoding that is a superset of ASCII is compatible with the functions
-- in this module. This includes UTF-8 and ISO-8859-15 but does not
-- include UTF-16 or UTF-32.
module Chronos.TimeOfDay.ByteString.Char7
-- | This could be written much more efficiently since we know the exact
-- size the resulting Text will be.
builder_HMS :: SubsecondPrecision -> Maybe Char -> TimeOfDay -> Builder
builder_IMS_p :: MeridiemLocale ByteString -> SubsecondPrecision -> Maybe Char -> TimeOfDay -> Builder
internalBuilder_I :: Int -> Builder
internalBuilder_p :: MeridiemLocale ByteString -> Int -> Builder
builder_IMSp :: MeridiemLocale ByteString -> SubsecondPrecision -> Maybe Char -> TimeOfDay -> Builder
parser_HMS :: Maybe Char -> Parser TimeOfDay
-- | Parses text that is formatted as either of the following:
--
--
--
-- 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_HMS_opt_S :: Maybe Char -> Parser TimeOfDay
parseSecondsAndNanoseconds :: Parser Int64
countZeroes :: Parser Int
nanosecondsBuilder :: Int64 -> Builder
microsecondsBuilder :: Int64 -> Builder
millisecondsBuilder :: Int64 -> Builder
prettyNanosecondsBuilder :: SubsecondPrecision -> Int64 -> Builder
int64Builder :: Int64 -> Builder
internalBuilder_NS :: SubsecondPrecision -> Maybe Char -> Int -> Int64 -> Builder
module Chronos.TimeOfDay.Text
-- | This could be written much more efficiently since we know the exact
-- size the resulting Text will be.
builder_HMS :: SubsecondPrecision -> Maybe Char -> TimeOfDay -> Builder
builder_IMS_p :: MeridiemLocale Text -> SubsecondPrecision -> Maybe Char -> TimeOfDay -> Builder
internalBuilder_I :: Int -> Builder
internalBuilder_p :: MeridiemLocale Text -> Int -> Builder
builder_IMSp :: MeridiemLocale Text -> SubsecondPrecision -> Maybe Char -> TimeOfDay -> Builder
parser_HMS :: Maybe Char -> Parser TimeOfDay
-- | Parses text that is formatted as either of the following:
--
--
--
-- 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_HMS_opt_S :: Maybe Char -> Parser TimeOfDay
parseSecondsAndNanoseconds :: Parser Int64
countZeroes :: Parser Int
nanosecondsBuilder :: Int64 -> Builder
microsecondsBuilder :: Int64 -> Builder
millisecondsBuilder :: Int64 -> Builder
prettyNanosecondsBuilder :: SubsecondPrecision -> Int64 -> Builder
internalBuilder_NS :: SubsecondPrecision -> Maybe Char -> Int -> Int64 -> Builder
module Chronos.Day
-- | Offset by the given number of days. To accomplish subtraction, provide
-- a negative number.
add :: Int -> Day -> Day
-- | Take the difference between two days.
diff :: Day -> Day -> Int
-- | Gets the current POSIX day. This does not take the user's time zone
-- into account.
today :: IO Day
tomorrow :: IO Day
yesterday :: IO Day
toDate :: Day -> Date
fromDate :: Date -> Day
module Chronos.Datetime
fromYmdhms :: Int -> Int -> Int -> Int -> Int -> Int -> Datetime
module Chronos.Date.Text
-- | This could be written much more efficiently since we know the exact
-- size the resulting Text will be.
builder_Ymd :: Maybe Char -> Date -> Builder
parser_Ymd :: Maybe Char -> Parser Date
module Chronos.Datetime.Text
encode_YmdHMS :: SubsecondPrecision -> DatetimeFormat -> Datetime -> Text
encode_YmdIMS_p :: MeridiemLocale Text -> SubsecondPrecision -> DatetimeFormat -> Datetime -> Text
-- | This could be written much more efficiently since we know the exact
-- size the resulting Text will be.
builder_YmdHMS :: SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder
builder_YmdIMS_p :: MeridiemLocale Text -> SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder
builder_YmdIMSp :: MeridiemLocale Text -> SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder
builderW3 :: Datetime -> Builder
decode_YmdHMS :: DatetimeFormat -> Text -> Maybe Datetime
parser_YmdHMS :: DatetimeFormat -> Parser Datetime
parser_YmdHMS_opt_S :: DatetimeFormat -> Parser Datetime
decode_YmdHMS_opt_S :: DatetimeFormat -> Text -> Maybe Datetime
-- | The naming conventions for offsets that are used in function names are
-- as follows:
--
--
-- - %z - z +hhmm numeric time zone (e.g.,
-- -0400)
-- - %:z - z1 +hh:mm numeric time zone (e.g.,
-- -04:00)
-- - %::z - z2 +hh:mm:ss numeric time zone (e.g.,
-- -04:00:00)
-- - %:::z - z3 numeric time zone with : to necessary
-- precision (e.g., -04, +05:30)
--
module Chronos.OffsetDatetime.Text
builder_YmdHMSz :: OffsetFormat -> SubsecondPrecision -> DatetimeFormat -> OffsetDatetime -> Builder
parser_YmdHMSz :: OffsetFormat -> DatetimeFormat -> Parser OffsetDatetime
builder_YmdIMS_p_z :: OffsetFormat -> MeridiemLocale Text -> SubsecondPrecision -> DatetimeFormat -> OffsetDatetime -> Builder
builderW3 :: OffsetDatetime -> Builder
offsetBuilder :: OffsetFormat -> Offset -> Builder
offsetParser :: OffsetFormat -> Parser Offset
-- | True means positive, false means negative
parseSignedness :: Parser Bool
parseOffset_z :: Parser Offset
parseOffset_z1 :: Parser Offset
parseOffset_z2 :: Parser Offset
-- | This is generous in what it accepts. If you give something like +04:00
-- as the offset, it will be allowed, even though it could be shorter.
parseOffset_z3 :: Parser Offset
buildOffset_z :: Offset -> Builder
buildOffset_z1 :: Offset -> Builder
buildOffset_z2 :: Offset -> Builder
buildOffset_z3 :: Offset -> Builder
module Chronos.Date.ByteString.Char7
-- | This could be written much more efficiently since we know the exact
-- size the resulting ByteString will be.
builder_Ymd :: Maybe Char -> Date -> Builder
parser_Ymd :: Maybe Char -> Parser Date
module Chronos.Datetime.ByteString.Char7
encode_YmdHMS :: SubsecondPrecision -> DatetimeFormat -> Datetime -> ByteString
encode_YmdIMS_p :: MeridiemLocale ByteString -> SubsecondPrecision -> DatetimeFormat -> Datetime -> ByteString
-- | This could be written much more efficiently since we know the exact
-- size the resulting ByteString will be.
builder_YmdHMS :: SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder
builder_YmdIMS_p :: MeridiemLocale ByteString -> SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder
builder_YmdIMSp :: MeridiemLocale ByteString -> SubsecondPrecision -> DatetimeFormat -> Datetime -> Builder
builderW3 :: Datetime -> Builder
decode_YmdHMS :: DatetimeFormat -> ByteString -> Maybe Datetime
parser_YmdHMS :: DatetimeFormat -> Parser Datetime
parser_YmdHMS_opt_S :: DatetimeFormat -> Parser Datetime
decode_YmdHMS_opt_S :: DatetimeFormat -> ByteString -> Maybe Datetime
-- | The naming conventions for offsets that are used in function names are
-- as follows:
--
--
-- - %z - z +hhmm numeric time zone (e.g.,
-- -0400)
-- - %:z - z1 +hh:mm numeric time zone (e.g.,
-- -04:00)
-- - %::z - z2 +hh:mm:ss numeric time zone (e.g.,
-- -04:00:00)
-- - %:::z - z3 numeric time zone with : to necessary
-- precision (e.g., -04, +05:30)
--
module Chronos.OffsetDatetime.ByteString.Char7
builder_YmdHMSz :: OffsetFormat -> SubsecondPrecision -> DatetimeFormat -> OffsetDatetime -> Builder
parser_YmdHMSz :: OffsetFormat -> DatetimeFormat -> Parser OffsetDatetime
builder_YmdIMS_p_z :: OffsetFormat -> MeridiemLocale ByteString -> SubsecondPrecision -> DatetimeFormat -> OffsetDatetime -> Builder
builderW3 :: OffsetDatetime -> Builder
offsetBuilder :: OffsetFormat -> Offset -> Builder
offsetParser :: OffsetFormat -> Parser Offset
-- | True means positive, false means negative
parseSignedness :: Parser Bool
parseOffset_z :: Parser Offset
parseOffset_z1 :: Parser Offset
parseOffset_z2 :: Parser Offset
-- | This is generous in what it accepts. If you give something like +04:00
-- as the offset, it will be allowed, even though it could be shorter.
parseOffset_z3 :: Parser Offset
buildOffset_z :: Offset -> Builder
buildOffset_z1 :: Offset -> Builder
buildOffset_z2 :: Offset -> Builder
buildOffset_z3 :: Offset -> Builder
module Chronos.Calendar
months :: [Month]
weekdays :: [DayOfWeek]
month :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Month -> a
dayOfWeek :: a -> a -> a -> a -> a -> a -> a -> DayOfWeek -> a
sunday :: DayOfWeek
monday :: DayOfWeek
tuesday :: DayOfWeek
wednesday :: DayOfWeek
thursday :: DayOfWeek
friday :: DayOfWeek
saturday :: DayOfWeek
january :: Month
february :: Month
march :: Month
april :: Month
may :: Month
june :: Month
july :: Month
august :: Month
september :: Month
october :: Month
november :: Month
december :: Month