特定のユーザーのpytzタイムゾーン(オフセットから計算)が与えられた場合、そのタイムゾーンの一般名を表示したいと思います。私は、人々がAmerica / NewYorkのように綴られるのではなく、ESTまたはPSTを見ることに慣れていると思います。
pytzはどこかでそれらの標準名を教えてくれますか、それともテーブルを介して手動でこれを行う必要がありますか?たとえば、場所はシーズン中にESTであり、他の場所ではEDTを表示するようにシフトするため、これは潜在的に厄介になる可能性があります。
インスタンスのtzname()
メソッドを使用できます。tzinfo
>>> tz = timezone('America/St_Johns')
>>> normal = datetime(2009, 9, 1)
>>> tz.tzname(normal, is_dst=False)
'NDT'
あなたが略語を探しているなら、頭に浮かぶいくつかの方法があります。
最初は次のようになります:
>>> 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'