へっぽこびんぼう野郎のnewbie日記

けろけーろ(´・ω・`)! #vZkt8fc6J

pythonでdatetime.datetime型に、単にタイムゾーンを付与したいときにやること

毎回忘れてStackoverflow見てるので(メソッドにするのもあれだな感)

追記(2018/01/25)
qiita.com

仕様変更?で、replaceだとうまくいかないので、 tz.localize に変更しました

タイムゾーンをくっつけるだけ

>>> import datetime
>>> import pytz
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2018, 1, 25, 12, 43, 28, 564722)
>>> pytz.utc.localize(now)
datetime.datetime(2018, 1, 25, 12, 43, 28, 564722, tzinfo=<UTC>)

タイムゾーン間の時差を計算してくれるやーつ

>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2018, 1, 25, 12, 43, 28, 564722)
>>> tokyo_now = pytz.timezone('Asia/Tokyo').localize(now)
>>> tokyo_now
datetime.datetime(2018, 1, 25, 12, 43, 28, 564722, tzinfo=<DstTzInfo 'Asia/Tokyo' JST+9:00:00 STD>)
>>> tokyo_now.astimezone(pytz.utc)
datetime.datetime(2018, 1, 25, 3, 43, 28, 564722, tzinfo=<UTC>)
>>> tokyo_now.astimezone(pytz.timezone("US/Hawaii"))
datetime.datetime(2018, 1, 24, 17, 43, 28, 564722, tzinfo=<DstTzInfo 'US/Hawaii' HST-1 day, 14:00:00 STD>)