This module offers a generic date/time string parser which is able to parse most known formats to represent a date and/or time.
This module attempts to be forgiving with regards to unlikely input formats, returning a datetime object even for dates which are ambiguous. If an element of a date/time stamp is omitted, the following rules are applied:
If any other elements are missing, they are taken from the datetime.datetime object passed to the parameter default. If this results in a day number exceeding the valid number of days per month, the value falls back to the end of the month.
Additional resources about date/time string formats can be found below:
Parse a string in one of the supported formats, using the parserinfo parameters.
Parameters: |
|
---|
The **kwargs parameter takes the following keyword arguments:
Parameters: |
|
---|---|
Returns: | Returns a datetime.datetime object or, if the fuzzy_with_tokens option is True, returns a tuple, the first element being a datetime.datetime object, the second a tuple containing the fuzzy tokens. |
Raises: |
|
Class which handles what inputs are accepted. Subclass this to customize the language and acceptable values for each parameter.
Parameters: |
|
---|
Parse an ISO-8601 datetime string into a datetime.datetime.
An ISO-8601 datetime string consists of a date portion, followed optionally by a time portion - the date and time portions are separated by a single character separator, which is T in the official standard. Incomplete date formats (such as YYYY-MM) may not be combined with a time portion.
Supported date formats are:
Common:
Uncommon:
The ISO week and day numbering follows the same logic as datetime.date.isocalendar().
Supported time formats are:
Midnight is a special case for hh, as the standard supports both 00:00 and 24:00 as a representation.
Caution
Support for fractional components other than seconds is part of the ISO-8601 standard, but is not currently implemented in this parser.
Supported time zone offset formats are:
Offsets will be represented as dateutil.tz.tzoffset objects, with the exception of UTC, which will be represented as dateutil.tz.tzutc. Time zone offsets equivalent to UTC (such as +00:00) will also be represented as dateutil.tz.tzutc.
Parameters: | dt_str – A string or stream containing only an ISO-8601 datetime string |
---|---|
Returns: | Returns a datetime.datetime representing the string. Unspecified components default to their lowest value. |
Warning
As of version 2.7.0, the strictness of the parser should not be considered a stable part of the contract. Any valid ISO-8601 string that parses correctly with the default settings will continue to parse correctly in future versions, but invalid strings that currently fail (e.g. 2017-01-01T00:00+00:00:00) are not guaranteed to continue failing in future versions if they encode a valid date.