| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Attoparsec.Time.ByteString
Description
ASCII ByteString Parsers.
Documentation
timeOfDayInISO8601 :: Parser TimeOfDay Source #
>>>parseOnly timeOfDayInISO8601 "05:03:58"Right 05:03:58
>>>parseOnly timeOfDayInISO8601 "05:03:58.02"Right 05:03:58.02
>>>parseOnly timeOfDayInISO8601 "05:03:58.020"Right 05:03:58.02
Checks the elements to be within a proper range:
>>>parseOnly timeOfDayInISO8601 "24:00:00"Left "timeOfDayInISO8601 > hour: Failed reading: Validator \"hour\" failed on the following input: 24"
>>>parseOnly timeOfDayInISO8601 "00:00:60"Left "timeOfDayInISO8601 > second: Failed reading: Validator \"second\" failed on the following input: 60.000000000000"
Checks the elements to be of proper length:
>>>parseOnly timeOfDayInISO8601 "1:00:00"Left "timeOfDayInISO8601 > hour: Failed reading: Not all chars are valid decimals"
>>>parseOnly timeOfDayInISO8601 "01:1:00"Left "timeOfDayInISO8601 > minute: Failed reading: Not all chars are valid decimals"
dayInISO8601 :: Parser Day Source #
>>>parseOnly dayInISO8601 "2017-02-01"Right 2017-02-01
Checks the elements to be in proper range:
>>>parseOnly dayInISO8601 "2017-13-01"Left "dayInISO8601: Failed reading: Invalid combination of year month and day: (2017,13,1)"
That is accounting for leap year:
>>>parseOnly dayInISO8601 "2017-02-29"Left "dayInISO8601: Failed reading: Invalid combination of year month and day: (2017,2,29)"
>>>parseOnly dayInISO8601 "2016-02-29"Right 2016-02-29
timeZoneInISO8601 :: Parser TimeZone Source #
>>>parseOnly timeZoneInISO8601 "+01:00"Right +0100
>>>parseOnly timeZoneInISO8601 "+0100"Right +0100
>>>parseOnly timeZoneInISO8601 "-0100"Right -0100
>>>parseOnly timeZoneInISO8601 "Z"Right UTC
utcTimeInISO8601 :: Parser UTCTime Source #
>>>parseOnly utcTimeInISO8601 "2017-02-01T05:03:58+01:00"Right 2017-02-01 04:03:58 UTC
diffTime :: Parser DiffTime Source #
No suffix implies the "seconds" unit:
>>>parseOnly diffTime "10"Right 10s
Various units (seconds, minutes, hours, days):
>>>parseOnly diffTime "10s"Right 10s
>>>parseOnly diffTime "10m"Right 600s
>>>parseOnly diffTime "10h"Right 36000s
>>>parseOnly diffTime "10d"Right 864000s
Metric prefixes to seconds (down to Pico):
>>>parseOnly diffTime "10ms"Right 0.01s
Notice that "μs" is not supported, because it's not ASCII.
>>>parseOnly diffTime "10us"Right 0.00001s
>>>parseOnly diffTime "10ns"Right 0.00000001s
>>>parseOnly diffTime "10ps"Right 0.00000000001s
Negative values:
>>>parseOnly diffTime "-1s"Right -1s
Unsupported units:
>>>parseOnly diffTime "1k"Left "diffTime: Failed reading: Unsupported unit: \"k\""
nominalDiffTime :: Parser NominalDiffTime Source #
No suffix implies the "seconds" unit:
>>>parseOnly nominalDiffTime "10"Right 10s
Various units (seconds, minutes, hours, days):
>>>parseOnly nominalDiffTime "10s"Right 10s
>>>parseOnly nominalDiffTime "10m"Right 600s
>>>parseOnly nominalDiffTime "10h"Right 36000s
>>>parseOnly nominalDiffTime "10d"Right 864000s
Metric prefixes to seconds (down to Pico):
>>>parseOnly nominalDiffTime "10ms"Right 0.01s
Notice that "μs" is not supported, because it's not ASCII.
>>>parseOnly nominalDiffTime "10us"Right 0.00001s
>>>parseOnly nominalDiffTime "10ns"Right 0.00000001s
>>>parseOnly nominalDiffTime "10ps"Right 0.00000000001s
Negative values:
>>>parseOnly nominalDiffTime "-1s"Right -1s
Unsupported units:
>>>parseOnly nominalDiffTime "1k"Left "nominalDiffTime: Failed reading: Unsupported unit: \"k\""