An ISO 8601 date/time/duration parser and formatter
Description
This module implements ISO 8601 date, time and duration parsing. The implementation follows
ISO8601:2004 standard, and implements only date/time\ representations mentioned in the standard. If
something is not mentioned there, then it is treated as non existent, and not as an allowed option.
For instance, ISO8601:2004 never mentions 2 digit years. So, it is not intended by this module to
support 2 digit years. (while it may still be valid as ISO date, because it is not explicitly
forbidden.) Another example is, when no time zone information is given for a time, then it should be
interpreted as local time, and not UTC.
As this module maps ISO 8601 dates/times to standard Python data types, like date, time, datetime
and timedelta, it is not possible to convert all possible ISO 8601 dates/times. For instance, dates
before 0001-01-01 are not allowed by the Python date and datetime classes. Additionally fractional
seconds are limited to microseconds. That means if the parser finds for instance nanoseconds it will
round it to microseconds.