Python 本地语言的时区名称

Python 本地语言的时区名称,python,localization,internationalization,timezone,pytz,Python,Localization,Internationalization,Timezone,Pytz,是否有其他语言的时区名称检索方法 在Python中,如果我执行以下操作: for tz in pytz.common_timezones_set : print tz 结果是英文的,但是如果我想用西班牙语或阿拉伯语怎么办?没有,很遗憾时区名称没有翻译。这些名称是的一部分(不是Python或pytz的一部分)。新的时区会不时添加,因此任何潜在的翻译项目都必须与该数据库保持同步。pytz。common\u timezones\u set在tz数据库中返回一组时区ID。它们被设计为人类可读,但不可

是否有其他语言的时区名称检索方法

在Python中,如果我执行以下操作:

for tz in pytz.common_timezones_set :
 print tz

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

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

pytz。common\u timezones\u set
在tz数据库中返回一组时区ID。它们被设计为人类可读,但不可翻译

提供对本地化时区名称的访问:

>>> 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'

来得很晚,但我最近遇到了类似的问题,并为此创建了自己的包
l18n
。可从以下网址获得:

它为pytz中使用的人类可读的地点和时区提供翻译文件。大多数翻译都是从CLDR数据库自动获取的,但总有一些翻译丢失了。目前只有英语和法语的翻译文件可用。如果您想为您的语言添加翻译,请随时与我联系(在软件包的回购协议上创建一个问题)或遵循逐步过程。

您可以使用


谢谢你把这些放在一起!但有一个建议:“l”看起来可能是大写的“i”(如果你眯着眼睛看,它可能是小写的“i”),因此l18n很容易与i18n混淆。这是一个有创意的名字,但也许不太可能以这种方式流行起来?另外,翻译地名也很好,但另一个有用的方法是给出实际的时区名称(例如,不幸的是,这似乎很复杂)。@NealGokli你可以用
l18n.tz_全名
来获得实际的时区名称,不是吗?
import pytz
from babel.dates import get_timezone_location

for tz in pytz.common_timezones_set:
    print(get_timezone_location(tz, locale='es'))