UTC-11 タイムゾーン (新しい年に入る最後のタイムゾーン) が現在入っている年を取得したいのですが、これを行う方法がわかりません。
pytz
ライブラリと Django の新しいモジュールにアクセスでき、timezone
タイムゾーン対応の UTC 日時オブジェクトを使用しています。
最も簡単なのは、タイムゾーン処理を完全にスキップし、を使用timedelta(hours=11)
してから減算しdatetime
、year
属性を確認することです。
>>> (datetime.datetime.utcnow() - datetime.timedelta(hours=11)).year
2012
実際には、タイムゾーンはそれよりも少しトリッキーです...節電の日付などに関しては、オフセットが同じでも設定が異なるタイムゾーンがある場合があります(または、さらに厄介な動作: 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()
ます(私の悪い)