Data.Time.Format.ISO8601

time-1.12.1: A time library

Safe Haskell | Safe
Language | Haskell2010

Data.Time.Format.ISO8601

Contents

- Format
- Common formats
- All formats
- Other

Synopsis

- data Format t
- formatShowM :: Format t -> t -> Maybe String
- formatShow :: Format t -> t -> String
- formatReadP :: Format t -> ReadP t
- formatParseM :: MonadFail m => Format t -> String -> m t
- class ISO8601 t where
  - iso8601Format :: Format t
- iso8601Show :: ISO8601 t => t -> String
- iso8601ParseM :: (MonadFail m, ISO8601 t) => String -> m t
- data FormatExtension
  - = ExtendedFormat
  - | BasicFormat
- formatReadPExtension :: (FormatExtension -> Format t) -> ReadP t
- parseFormatExtension :: MonadFail m => (FormatExtension -> Format t) -> String -> m t
- calendarFormat :: FormatExtension -> Format Day
- yearMonthFormat :: Format (Integer, Int)
- yearFormat :: Format Integer
- centuryFormat :: Format Integer
- expandedCalendarFormat :: Int -> FormatExtension -> Format Day
- expandedYearMonthFormat :: Int -> Format (Integer, Int)
- expandedYearFormat :: Int -> Format Integer
- expandedCenturyFormat :: Int -> Format Integer
- ordinalDateFormat :: FormatExtension -> Format Day
- expandedOrdinalDateFormat :: Int -> FormatExtension -> Format Day
- weekDateFormat :: FormatExtension -> Format Day
- yearWeekFormat :: FormatExtension -> Format (Integer, Int)
- expandedWeekDateFormat :: Int -> FormatExtension -> Format Day
- expandedYearWeekFormat :: Int -> FormatExtension -> Format (Integer, Int)
- timeOfDayFormat :: FormatExtension -> Format TimeOfDay
- hourMinuteFormat :: FormatExtension -> Format TimeOfDay
- hourFormat :: Format TimeOfDay
- withTimeDesignator :: Format t -> Format t
- withUTCDesignator :: Format t -> Format t
- timeOffsetFormat :: FormatExtension -> Format TimeZone
- timeOfDayAndOffsetFormat :: FormatExtension -> Format (TimeOfDay, TimeZone)
- localTimeFormat :: Format Day -> Format TimeOfDay -> Format LocalTime
- zonedTimeFormat :: Format Day -> Format TimeOfDay -> FormatExtension -> Format ZonedTime
- utcTimeFormat :: Format Day -> Format TimeOfDay -> Format UTCTime
- dayAndTimeFormat :: Format Day -> Format time -> Format (Day, time)
- timeAndOffsetFormat :: Format t -> FormatExtension -> Format (t, TimeZone)
- durationDaysFormat :: Format CalendarDiffDays
- durationTimeFormat :: Format CalendarDiffTime
- alternativeDurationDaysFormat :: FormatExtension -> Format CalendarDiffDays
- alternativeDurationTimeFormat :: FormatExtension -> Format CalendarDiffTime
- intervalFormat :: Format a -> Format b -> Format (a, b)
- recurringIntervalFormat :: Format a -> Format b -> Format (Int, a, b)
- isoMakeTimeOfDayValid :: Int -> Int -> Pico -> Maybe TimeOfDay

# Format

data Format t Source #

A text format for a type

formatShowM :: Format t -> t -> Maybe String Source #

Show a value in the format, if representable

formatShow :: Format t -> t -> String Source #

Show a value in the format, or error if unrepresentable

formatReadP :: Format t -> ReadP t Source #

Read a value in the format

formatParseM :: MonadFail m => Format t -> String -> m t Source #

Parse a value in the format

# Common formats

class ISO8601 t where Source #

Methods

iso8601Format :: Format t Source #

The most commonly used ISO 8601 format for this type.

#### Instances

Instances details

ISO8601 CalendarDiffDays Source # | `PyYmMdD` (ISO 8601:2004(E) sec. 4.4.3.2)
Instance details Defined in Data.Time.Format.ISO8601 Methods iso8601Format :: Format CalendarDiffDays Source #
ISO8601 Day Source # | `yyyy-mm-dd` (ISO 8601:2004(E) sec. 4.1.2.2 extended format)
Instance details Defined in Data.Time.Format.ISO8601 Methods iso8601Format :: Format Day Source #
ISO8601 UTCTime Source # | `yyyy-mm-ddThh:mm:ss[.sss]Z` (ISO 8601:2004(E) sec. 4.3.2 extended format)
Instance details Defined in Data.Time.Format.ISO8601 Methods iso8601Format :: Format UTCTime Source #
ISO8601 CalendarDiffTime Source # | `PyYmMdDThHmMs[.sss]S` (ISO 8601:2004(E) sec. 4.4.3.2)
Instance details Defined in Data.Time.Format.ISO8601 Methods iso8601Format :: Format CalendarDiffTime Source #
ISO8601 LocalTime Source # | `yyyy-mm-ddThh:mm:ss[.sss]` (ISO 8601:2004(E) sec. 4.3.2 extended format)
Instance details Defined in Data.Time.Format.ISO8601 Methods iso8601Format :: Format LocalTime Source #
ISO8601 TimeOfDay Source # | `hh:mm:ss[.sss]` (ISO 8601:2004(E) sec. 4.2.2.2, 4.2.2.4(a) extended format)
Instance details Defined in Data.Time.Format.ISO8601 Methods iso8601Format :: Format TimeOfDay Source #
ISO8601 TimeZone Source # | `±hh:mm` (ISO 8601:2004(E) sec. 4.2.5.1 extended format)
Instance details Defined in Data.Time.Format.ISO8601 Methods iso8601Format :: Format TimeZone Source #
ISO8601 ZonedTime Source # | `yyyy-mm-ddThh:mm:ss[.sss]±hh:mm` (ISO 8601:2004(E) sec. 4.3.2 extended format)
Instance details Defined in Data.Time.Format.ISO8601 Methods iso8601Format :: Format ZonedTime Source #

iso8601Show :: ISO8601 t => t -> String Source #

Show in the most commonly used ISO 8601 format.

iso8601ParseM :: (MonadFail m, ISO8601 t) => String -> m t Source #

Parse the most commonly used ISO 8601 format.

# All formats

data FormatExtension Source #

Constructors

ExtendedFormat | ISO 8601:2004(E) sec. 2.3.4. Use hyphens and colons.
BasicFormat | ISO 8601:2004(E) sec. 2.3.3. Omit hyphens and colons. "The basic format should be avoided in plain text."

formatReadPExtension :: (FormatExtension -> Format t) -> ReadP t Source #

Read a value in either extended or basic format

parseFormatExtension :: MonadFail m => (FormatExtension -> Format t) -> String -> m t Source #

Parse a value in either extended or basic format

calendarFormat :: FormatExtension -> Format Day Source #

ISO 8601:2004(E) sec. 4.1.2.2

yearMonthFormat :: Format (Integer, Int) Source #

ISO 8601:2004(E) sec. 4.1.2.3(a)

yearFormat :: Format Integer Source #

ISO 8601:2004(E) sec. 4.1.2.3(b)

centuryFormat :: Format Integer Source #

ISO 8601:2004(E) sec. 4.1.2.3(c)

expandedCalendarFormat :: Int -> FormatExtension -> Format Day Source #

ISO 8601:2004(E) sec. 4.1.2.4(a)

expandedYearMonthFormat :: Int -> Format (Integer, Int) Source #

ISO 8601:2004(E) sec. 4.1.2.4(b)

expandedYearFormat :: Int -> Format Integer Source #

ISO 8601:2004(E) sec. 4.1.2.4(c)

expandedCenturyFormat :: Int -> Format Integer Source #

ISO 8601:2004(E) sec. 4.1.2.4(d)

ordinalDateFormat :: FormatExtension -> Format Day Source #

ISO 8601:2004(E) sec. 4.1.3.2

expandedOrdinalDateFormat :: Int -> FormatExtension -> Format Day Source #

ISO 8601:2004(E) sec. 4.1.3.3

weekDateFormat :: FormatExtension -> Format Day Source #

ISO 8601:2004(E) sec. 4.1.4.2

yearWeekFormat :: FormatExtension -> Format (Integer, Int) Source #

ISO 8601:2004(E) sec. 4.1.4.3

expandedWeekDateFormat :: Int -> FormatExtension -> Format Day Source #

ISO 8601:2004(E) sec. 4.1.4.2

expandedYearWeekFormat :: Int -> FormatExtension -> Format (Integer, Int) Source #

ISO 8601:2004(E) sec. 4.1.4.3

timeOfDayFormat :: FormatExtension -> Format TimeOfDay Source #

ISO 8601:2004(E) sec. 4.2.2.2, 4.2.2.4(a)

hourMinuteFormat :: FormatExtension -> Format TimeOfDay Source #

ISO 8601:2004(E) sec. 4.2.2.3(a), 4.2.2.4(b)

hourFormat :: Format TimeOfDay Source #

ISO 8601:2004(E) sec. 4.2.2.3(b), 4.2.2.4(c)

withTimeDesignator :: Format t -> Format t Source #

ISO 8601:2004(E) sec. 4.2.2.5

withUTCDesignator :: Format t -> Format t Source #

ISO 8601:2004(E) sec. 4.2.4

timeOffsetFormat :: FormatExtension -> Format TimeZone Source #

ISO 8601:2004(E) sec. 4.2.5.1

timeOfDayAndOffsetFormat :: FormatExtension -> Format (TimeOfDay, TimeZone) Source #

ISO 8601:2004(E) sec. 4.2.5.2

localTimeFormat :: Format Day -> Format TimeOfDay -> Format LocalTime Source #

ISO 8601:2004(E) sec. 4.3.2

zonedTimeFormat :: Format Day -> Format TimeOfDay -> FormatExtension -> Format ZonedTime Source #

ISO 8601:2004(E) sec. 4.3.2

utcTimeFormat :: Format Day -> Format TimeOfDay -> Format UTCTime Source #

ISO 8601:2004(E) sec. 4.3.2

dayAndTimeFormat :: Format Day -> Format time -> Format (Day, time) Source #

ISO 8601:2004(E) sec. 4.3.3

timeAndOffsetFormat :: Format t -> FormatExtension -> Format (t, TimeZone) Source #

ISO 8601:2004(E) sec. 4.3.3

durationDaysFormat :: Format CalendarDiffDays Source #

ISO 8601:2004(E) sec. 4.4.3.2

durationTimeFormat :: Format CalendarDiffTime Source #

ISO 8601:2004(E) sec. 4.4.3.2

alternativeDurationDaysFormat :: FormatExtension -> Format CalendarDiffDays Source #

ISO 8601:2004(E) sec. 4.4.3.3

alternativeDurationTimeFormat :: FormatExtension -> Format CalendarDiffTime Source #

ISO 8601:2004(E) sec. 4.4.3.3

intervalFormat :: Format a -> Format b -> Format (a, b) Source #

ISO 8601:2004(E) sec. 4.4.4.1

recurringIntervalFormat :: Format a -> Format b -> Format (Int, a, b) Source #

ISO 8601:2004(E) sec. 4.5

# Other

isoMakeTimeOfDayValid :: Int -> Int -> Pico -> Maybe TimeOfDay Source #

Like `makeTimeOfDayValid`, but accepts `24 0 0` per ISO 8601:2004(E) sec. 4.2.3

Since: time-1.12