Data.Attoparsec.Time

attoparsec-iso8601-1.1.1.0: Parsing of ISO 8601 dates, originally from aeson

Copyright | (c) 2015-2016 Bryan O'Sullivan
License | BSD3
Maintainer | Bryan O'Sullivan <bos@serpentine.com>
Stability | experimental
Portability | portable
Safe Haskell | None
Language | Haskell2010

Data.Attoparsec.Time

Description

Parsers for parsing dates and times.

Synopsis

- day :: Parser Day
- localTime :: Parser LocalTime
- timeOfDay :: Parser TimeOfDay
- timeZone :: Parser (Maybe TimeZone)
- utcTime :: Parser UTCTime
- zonedTime :: Parser ZonedTime
- year :: Parser Year
- month :: Parser Month
- quarter :: Parser Quarter

# Documentation

day :: Parser Day #

Parse a date of the form `[+,-]YYYY-MM-DD`.

The year must contain at least 4 digits, to avoid the Y2K problem: a two-digit year `YY` may mean `YY`, `19YY`, or `20YY`, and we make it an error to prevent the ambiguity. Years from `0000` to `0999` must thus be zero-padded. The year may have more than 4 digits.

localTime :: Parser LocalTime #

Parse a date and time, of the form `YYYY-MM-DD HH:MM[:SS[.SSS]]`. The space may be replaced with a `T`. The number of seconds is optional and may be followed by a fractional component.

timeOfDay :: Parser TimeOfDay #

Parse a time of the form `HH:MM[:SS[.SSS]]`.

timeZone :: Parser (Maybe TimeZone) #

Parse a time zone, and return `Nothing` if the offset from UTC is zero. (This makes some speedups possible.)

The accepted formats are `Z`, `+HH`, `+HHMM`, or `+HH:MM`.

utcTime :: Parser UTCTime #

Behaves as `zonedTime`, but converts any time zone offset into a UTC time.

zonedTime :: Parser ZonedTime #

Parse a date with time zone info. Acceptable formats:

`YYYY-MM-DD HH:MM Z` `YYYY-MM-DD HH:MM:SS Z` `YYYY-MM-DD HH:MM:SS.SSS Z`

The first space may instead be a `T`, and the second space is optional. The `Z` represents UTC. The `Z` may be replaced with a time zone offset of the form `+0000` or `-08:00`, where the first two digits are hours, the `:` is optional and the second two digits (also optional) are minutes.

year :: Parser Year #

Parse a year `YYYY`, with at least 4 digits. Does not include any sign.

Note: `Year` is a type synonym for `Integer`.

Since: 1.1.0.0

month :: Parser Month #

Parse a month of the form `[+,-]YYYY-MM`.

See also `day` for details about the year format.

quarter :: Parser Quarter #

Parse a quarter of the form `[+,-]YYYY-QN`.

See also `day` for details about the year format.