我在使用pytz时将'ZZ'作为国家/地区代码

时间:2014-01-07 14:18:24

标签: google-app-engine python-2.7 pytz

我正在使用App引擎,我正在尝试从请求中获取时区。 但是,当在本地主机上时,它似乎总是返回'ZZ'作为国家代码,而不是pytz库中的国家。

此代码:

country = self.request.headers['X-Appengine-Country']
logging.info(country)
tz = pytz.country_timezones(country)

产生此错误:

return self.data[key.upper()]
KeyError: 'ZZ'
非常感谢你的帮助

2 个答案:

答案 0 :(得分:7)

'ZZ'通常用于表示“未知或未指定的国家/地区”

还有两个字母代码的数字版本,计算为1070 + 30a + b,其中a和b是由A = 1,B = 2等转换的代码的两个字母。所以AA = 1101 ,AB = 1102,BA = 1131,ZZ = 1876。

答案 1 :(得分:4)

我建议您对请求标头名称使用正确的大小写。对于例如X-AppEngine-Country

但是,在本地开发环境中 - 我认为不会支持位置功能,即您将无法获得正确的值。这些应该仅适用于部署环境。该位置最有可能由Google网络内部的Google服务提供,而不会在本地开发环境中公开。

尝试将代码部署到实时环境并检查值。