4

UTC-11 タイムゾーン (新しい年に入る最後のタイムゾーン) が現在入っている年を取得したいのですが、これを行う方法がわかりません。

pytzライブラリと Django の新しいモジュールにアクセスでき、timezoneタイムゾーン対応の UTC 日時オブジェクトを使用しています。

4

2 に答える 2

5

最も簡単なのは、タイムゾーン処理を完全にスキップし、を使用timedelta(hours=11)してから減算しdatetimeyear属性を確認することです。

>>> (datetime.datetime.utcnow() - datetime.timedelta(hours=11)).year
2012
于 2012-12-26T16:24:01.623 に答える
2

実際には、タイムゾーンはそれよりも少しトリッキーです...節電の日付などに関しては、オフセットが同じでも設定が異なるタイムゾーンがある場合があります(または、さらに厄介な動作: https://stackoverflow.com/a/6841479 /289011 )

この特定のケースでは、次のほうがよいと思います。

>>> "%s" % (datetime.datetime.utcnow() - datetime.timedelta(hours=11))
'2012-12-26 00:25:30.029864'

ちょうどその年のために:

>>> "%s" % (datetime.datetime.utcnow() - datetime.timedelta(hours=11)).year
'2012'

編集:ええ、そして...datetime.utcnow()ではなく、を使用することをお勧めしdatetime.now()ます(私の悪い)

于 2012-12-26T16:25:45.223 に答える