0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

pythonでタイムゾーンを反映した今日の日付を取得する

Posted at

#はじめに
python3の標準ライブラリであるdatetimeでは、以下のようにtimezoneの設定が可能です。

from datetime import datetime, timedelta, timezone

JST = timezone(timedelta(hours=+9), 'JST')

now = datetime.now(JST)
print(now)
print(type(now))
実行結果
2018-08-25 22:55:19.911794+09:00
<class 'datetime.datetime'>

しかし、日付のみの形式であるdatetime.dateクラスで
タイムゾーン反映済の現在日付を取得したいような場面では、ひと手間必要になります。

#今日の日付を取得する
結論を述べると以下のようにdate関数を使うのがBESTです。

from datetime import datetime, timedelta, timezone

JST = timezone(timedelta(hours=+9), 'JST')

now = datetime.now(JST)
today = now.date()
print(today)
print(type(today))
実行結果
2018-08-25
<class 'datetime.date'>

#できなかったパターン
以下のようにした場合、タイムゾーンが反映できた場合と、できない場合がありました。
timezoneで指定した時間がモジュールのどこかに保存されて、today関数に影響を及ぼすのでしょうか?

from datetime import datetime, timedelta, timezone

JST = timezone(timedelta(hours=+9), 'JST')
today = datetime.today()

#おわりに
できなかったパターンの原因わかる方いらっしゃいましたらご助言お願いします!

#参考
Python3のdatetimeはタイムゾーンを指定するだけで高速になる
https://qiita.com/mattsu6/items/5511c5631e7a54550f7f

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?