如何让 Python 可以理解更多时区?
>>> import time
>>> date='Wed Dec 31 20:37:36 EST 1969'
>>> pattern='%a %b %d %H:%M:%S %Z %Y'
>>> seconds_from_eopch = int(time.mktime(time.strptime(date, date_pattern)))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/_strptime.py", line 454, in _strptime_time
return _strptime(data_string, format)[0]
File "/usr/lib/python2.7/_strptime.py", line 325, in _strptime
(data_string, format))
ValueError: time data 'Wed Dec 31 20:37:36 EST 1969' does not match format '%a %b %d %H:%M:%S %Z %Y'
我能够发现的是 EST 被拒绝;我的计算机唯一理解的时区是 tome.tzname 中列出的时区:
>>> time.tzname
('PST', 'PDT')
我天真地尝试将 EST 添加到列表中,但它没有帮助。
如何"合法"添加 EST?
time.tzname
始终包含两个值。您应该在 Python 中安装 pytz
包以获得一般时区支持(由于时区信息会定期更改,它不是标准库的一部分,但需要单独下载/安装)。
然后,您可以将pytz.all_timezones
中的任何元素用作时区 - 可以使用pytz.timezone(name_of_timezone)
构造时区。