Why %z is not supported by python's strptime?
datetime, python, python-datetime, strptime, timezone
Solution
Until Python 3.2, Python's `datetime` module had no `timezone()` object. It supported 3rd-party libraries providing timezones by providing a `datetime.tzinfo()` abstract base class, but no timezone object was included. Without a timezone object, no support for parsing timezone offsets either.
As of Python 3.2, `z` is supported, because that version (and up) added a `datetime.timezone()` type:
>>> import datetime
>>> datetime.datetime.strptime('2014-02-13 11:55:00 -0800', '%Y-%m-%d %H:%M:%S %z')
datetime.datetime(2014, 2, 13, 11, 55, tzinfo=datetime.timezone(datetime.timedelta(-1, 57600)))
>>> _.tzinfo
datetime.timezone(datetime.timedelta(-1, 57600))
Problem
``` >>> datetime.strptime('2014-02-13 11:55:00 -0800', '%Y-%m-%d %H:%M:%S %z') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_strptime.py", line 317, in _strptime (bad_directive, format)) ValueError: 'z' is a bad directive in format '%Y-%m-%d %H:%M:%S %z' ``` I understand that it's not supported, but don't know why. Seems it's not hard to support that. And 'Offset from UTC' is not as ambiguous as timezone abbreviation.