2015-01-26 43 views
2

如何让更多的时区可以被Python理解?如何扩展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?

回答

3

time.tzname总是包含两个值。您应该安装pytz软件包以支持Python中的一般时区支持(因为时区信息会定期更改,它不是标准库的一部分,但需要单独下载/安装)。

然后,您可以使用pytz.all_timezones中的任何元素作为时区 - 可以使用pytz.timezone(name_of_timezone)构建。

+0

我安装了pytz,但没有什么区别:我仍然得到相同的错误。 – user3457334 2015-01-28 01:11:01

+0

这里的标准库不是很好,我倾向于使用dateutil包,它可以解析你给它的任何字符串。 – 2015-01-28 08:58:53

相关问题