How to parse timezone with colon
Currently, there is no cure for this, and here is and explanation: https://bugs.python.org/issue15873 more precisely, here: https://bugs.python.org/msg169952 .But you can override this issue, this way:
from datetime import datetimed = "2015-04-30T23:59:59+00:00"if ":" == d[-3:-2]: d = d[:-3]+d[-2:]print(datetime.strptime(d, "%Y-%m-%dT%H:%M:%S%z"))
Adapted from a rejected edit:
Python >= 3.7:
from datetime import datetimed = "2019-12-25T23:59:59+00:00"print(datetime.strptime(d, "%Y-%m-%dT%H:%M:%S%z"))
Changed in version 3.7: When the %z directive is provided to the strptime() method, the UTC offsets can have a colon as a separator between hours, minutes and seconds. For example, '+01:00:00' will be parsed as an offset of one hour. In addition, providing 'Z' is identical to '+00:00'.
https://docs.python.org/3.7/library/datetime.html
Python <= 3.6
There is no built-in way, but the best solution is:
from datetime import datetimed = "2019-12-25T23:59:59+00:00"if ":" == d[-3]: d = d[:-3]+d[-2:]print(datetime.strptime(d, "%Y-%m-%dT%H:%M:%S%z"))
Explanations:https://bugs.python.org/issue15873https://bugs.python.org/msg169952