7

有没有一种方法可以用另一种语言检索时区名称?

在 Python 中,如果我这样做:

for tz in pytz.common_timezones_set :
 print tz

结果是英文的,但如果我想要西班牙文或阿拉伯文怎么办?

4

4 回答 4

6

你可以使用babel 包

import pytz
from babel.dates import get_timezone_location

for tz in pytz.common_timezones_set:
    print(get_timezone_location(tz, locale='es'))
于 2017-02-02T08:44:11.273 回答
1

不,很遗憾,时区名称没有翻译。这些名称是Olson 时区数据库的一部分(不是 Python 或 的一部分pytz)。不时添加新的,因此任何潜在的翻译项目都必须与该数据库保持同步。

于 2012-10-23T16:01:50.240 回答
1

pytz.common_timezones_set返回 tz 数据库中的一组时区ID。它们被设计成人类可读的,但它们不可翻译。

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'
于 2015-01-27T20:02:06.830 回答
0

来得很晚,但我最近遇到了类似的问题,最终l18n为此目的创建了自己的包。它在这里可用:https ://pypi.python.org/pypi/l18n

它为 pytz 中使用的人类可读地点和时区提供翻译文件。大多数翻译都是从 CLDR 数据库中自动获取的,但总是有一些翻译丢失。目前只有英文和法文的翻译文件可用。如果您想为您的语言添加翻译,请随时与我联系(在包的 repo https://bitbucket.org/tkhyn/l18n上创建问题)或按照此处的分步程序进行操作。

于 2015-03-16T20:50:12.447 回答