Pythonのdatetime
モジュールを使って日本時間を取得する方法はいくつかあります。以下にその方法を示します。
方法1: pytzの利用
datetime.datetime.now()
の引数にpytz.timezone()
で東京を指定します。
import datetime
import pytz
now = datetime.datetime.now(pytz.timezone('Asia/Tokyo'))
このコードを実行すると、現在の日本時間が取得できます。
方法2: UTCとの差分を計算
JSTとUTCの差分は+9時間なので、UTC時間を取得して+9時間します。
import datetime
# JSTとUTCの差分
DIFF_JST_FROM_UTC = 9
now = datetime.datetime.utcnow() + datetime.timedelta(hours=DIFF_JST_FROM_UTC)
このコードも現在の日本時間を取得します。
方法3: 文字列からの変換
文字列の日付(標準時間)を日本時間に直す方法もあります。
import datetime
# 元の日付(標準時間)
hiduke = '25/Aug/2020 11:01:52'
# 1. 日付型に変換
hiduke = datetime.datetime.strptime(hiduke, '%d/%b/%Y %H:%M:%S')
# 2. タイムゾーンの情報を付与(ここではUTC)
hiduke = hiduke.replace(tzinfo=datetime.timezone.utc)
# 3. タイムゾーンを日本時間に変換 (+9時間)
hiduke = hiduke.astimezone(datetime.timezone(datetime.timedelta(hours=+9)))
# 4. タイムゾーン表記を消去
hiduke = hiduke.replace(tzinfo=None)
以上の方法を使えば、Pythonのdatetime
モジュールを使って日本時間を確実に取得することができます。