41

特定のユーザーのpytzタイムゾーン(オフセットから計算)が与えられた場合、そのタイムゾーンの一般名を表示したいと思います。私は、人々がAmerica / NewYorkのように綴られるのではなく、ESTまたはPSTを見ることに慣れていると思います。

pytzはどこかでそれらの標準名を教えてくれますか、それともテーブルを介して手動でこれを行う必要がありますか?たとえば、場所はシーズン中にESTであり、他の場所ではEDTを表示するようにシフトするため、これは潜在的に厄介になる可能性があります。

4

4 に答える 4

5

インスタンスのtzname()メソッドを使用できます。tzinfo

>>> tz = timezone('America/St_Johns')
>>> normal = datetime(2009, 9, 1)
>>> tz.tzname(normal, is_dst=False)
'NDT'
于 2011-05-10T07:37:51.140 に答える
5

あなたが略語を探しているなら、頭に浮かぶいくつかの方法があります。

最初は次のようになります:

>>> from pytz import timezone
>>> eastern = timezone('US/Eastern')
>>> eastern._tzname
'EST'

これは、前に1つのアンダースコアが付いたプロパティを参照しているため、プライベートと見なされる可能性があり、取得するのに最適な場所ではない可能性があります。もう1つは、ローカライズされた日時オブジェクトからのものです。

>>> from datetime import datetime
>>> loc_dt = eastern.localize(datetime.now())
>>> loc_dt.strftime('%Z')
'EST'
于 2011-05-10T07:38:04.480 に答える