是否有一种方法可以用另一种语言检索时区名称?
在Python中,如果我这样做:
for tz in pytz.common_timezones_set :
print tz
结果是英文的,但是如果我想用西班牙语或阿拉伯语的话呢?
答案 0 :(得分:3)
您可以使用babel package
import pytz
from babel.dates import get_timezone_location
for tz in pytz.common_timezones_set:
print(get_timezone_location(tz, locale='es'))
答案 1 :(得分:1)
不,遗憾的是,时区名称没有翻译。这些名称是Olson timezone database的一部分(不属于Python或pytz
)。新的是不时添加的,因此任何潜在的翻译项目都必须与该数据库保持同步。
答案 2 :(得分:0)
pytz.common_timezones_set
会在tz数据库中返回一组时区 ids 。它们被设计为人类可读,但它们不可翻译。
PyICU提供对本地化时区名称的访问权限:
>>> from datetime import datetime
>>> import icu
>>> df = icu.DateFormat.createDateTimeInstance(icu.DateFormat.SHORT, icu.DateFormat.FULL, icu.Locale.getFrance())
>>> df.format(datetime.now(icu.ICUtzinfo.getDefault()))
'27/01/2015 21:01:01 heure normale d’Europe centrale'
答案 3 :(得分:0)
来得太晚了但我最近遇到了类似的问题,最后为此目的创建了自己的包l18n
。它可以在这里找到:https://pypi.python.org/pypi/l18n
它为pytz中使用的人类可读地点和时区提供翻译文件。大多数翻译都是从CLDR数据库中自动获取的,但总会丢失一些翻译。目前只提供英语和法语的翻译文件。如果您想为您的语言添加翻译,请随时与我联系(在软件包的回购https://bitbucket.org/tkhyn/l18n上创建问题)或按照分步过程here进行操作。