Skip to content Skip to sidebar Skip to footer

What Possible Values Does Datetime.strptime() Accept For %z?

Python's datetime.strptime() is documented as supporting a timezone in the %Z field. So, for example: In [1]: datetime.strptime('2009-08-19 14:20:36 UTC', '%Y-%m-%d %H:%M:%S %Z') O

Solution 1:

I gather they are GMT, UTC, and whatever is listed in time.tzname.

>>> for t in time.tzname:
...     print t
...
Eastern Standard Time
Eastern Daylight Time
>>> datetime.strptime('2009-08-19 14:20:36 Eastern Standard Time', "%Y-%m-%d %H:%M:%S %Z")
datetime.datetime(2009, 8, 19, 14, 20, 36)
>>> datetime.strptime('2009-08-19 14:20:36 UTC', "%Y-%m-%d %H:%M:%S %Z")
datetime.datetime(2009, 8, 19, 14, 20, 36)
>>> datetime.strptime('2009-08-19 14:20:36 GMT', "%Y-%m-%d %H:%M:%S %Z")
datetime.datetime(2009, 8, 19, 14, 20, 36)

These settings are machine-specific, of course, and yours will be different in all likelihood.

Solution 2:

This is from the time module, but I'm almost certain it applies to datetime:

Support for the %Z directive is based on the values contained in tzname and whether daylight is true. Because of this, it is platform-specific except for recognizing UTC and GMT which are always known (and are considered to be non-daylight savings timezones).

https://docs.python.org/library/time.html

On my system:

>>> import time
>>> time.tzname
('PST', 'PDT')

Using anything but these in datetime.strptime results in an exception. So, look to see what you have available on your machine.

Post a Comment for "What Possible Values Does Datetime.strptime() Accept For %z?"