2012-10-23 11 views
5

別の言語でタイムゾーン名を取得する方法はありますか? Pythonで現地時間でのタイムゾーン名

、私はこのような何か場合:

for tz in pytz.common_timezones_set : 
print tz 

結果が英語であるが、しかし、私はスペイン語やアラビア語でそれを持っていると思いますか?

答えて

1

残念ながら、残念ながらタイムゾーン名の翻訳はありません。名前はOlson timezone database(Pythonの一部ではない)またはpytzの一部です。新しいものは時々追加されるため、潜在的な翻訳プロジェクトはそのデータベースと同期していなければなりません。

+0

ない私が望んでいた答えが、おかげで使用することができます。 – Trollbane

0

pytz.common_timezones_setは、タイムゾーンのIDのセットをtzデータベースに返します。それらは人間が読めるように設計されていますが、翻訳はできません。

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

はかなり遅れて来るが、私は最近、同様の問題に遭遇し、その目的のために私自身のパッケージl18nを作成することになった:

PyICUは、ローカライズされたタイムゾーン名へのアクセスを提供します。それはここにあります:https://pypi.python.org/pypi/l18n

pytzで使用される人間が読める場所と時間帯の翻訳ファイルを提供します。ほとんどの翻訳はCLDRデータベースから自動的にフェッチされますが、そのうちのいくつかは常に欠落しています。現時点では、英語とフランス語の翻訳ファイルのみが利用可能です。お住まいの言語の翻訳を追加する場合は、私に連絡してください(パッケージのレポhttps://bitbucket.org/tkhyn/l18nに問題を作成してください)、またはステップバイステップの手順hereに従ってください。

+0

これをまとめてくれてありがとう!しかし、私は大文字である可能性があります(小文字の場合は小文字の 'i')ので、l18nは簡単にi18nと混同する可能性があります。それは創造的な名前でしたが、おそらくこのように捉える可能性は低いでしょうか?また、場所の名前を翻訳するのもいいですが、実際のタイムゾーンの名前を付けるのも便利です(残念なことに、かなり複雑なようです)。 –

+0

@NealGokliあなたは 'l18n.tz_fullnames'で実際のタイムゾーン名を取得できますか? – ouk

2

あなたは説明するための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')) 
関連する問題