Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- timeOfDayInISO8601 :: Parser TimeOfDay
- dayInISO8601 :: Parser Day
- yearAndMonthInISO8601 :: Parser (Word, Word)
- timeZoneInISO8601 :: Parser TimeZone
- utcTimeInISO8601 :: Parser UTCTime
- diffTime :: Parser DiffTime
- nominalDiffTime :: Parser NominalDiffTime
- hour :: Parser Int
- minute :: Parser Int
- second :: Parser Pico
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: Invalid decimal length"
>>>
parseOnly timeOfDayInISO8601 "01:1:00"
Left "timeOfDayInISO8601 > minute: Failed reading: Invalid decimal length"
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
yearAndMonthInISO8601 :: Parser (Word, Word) Source #
>>>
parseOnly yearAndMonthInISO8601 "2016-02"
Right (2016,2)
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
>>>
parseOnly diffTime "10μs"
Right 0.00001s
>>>
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
>>>
parseOnly nominalDiffTime "10μs"
Right 0.00001s
>>>
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\""