Q:

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")
Out[1]: datetime.datetime(2009, 8, 19, 14, 20, 36)

However, "UTC" seems to be the only timezone I can get it to support:
In [2]: datetime.strptime('2009-08-19 14:20:36 EDT', "%Y-%m-%d %H:%M:%S %Z")
ValueError: time data '2009-08-19 14:20:36 EDT' does not match format '%Y-%m-%d %H:%M:%S %Z'

In [3]: datetime.strptime('2009-08-19 14:20:36 America/Phoenix', "%Y-%m-%d %H:%M:%S %Z")
ValueError: time data '2009-08-19 14:20:36 America/Phoenix' does not match format '%Y-%m-%d %H:%M:%S %Z'

In [4]: datetime.strptime('2009-08-19 14:20:36 -0700', "%Y-%m-%d %H:%M:%S %Z")
ValueError: time data '2009-08-19 14:20:36 -0700' does not match format '%Y-%m-%d %H:%M:%S %Z'

What format is it expecting for %Z? Or, how do I represent a timezone other than UTC?

A:

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.

A:

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.

