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

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

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

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

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

>>> import datetime
>>> import pytz
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2016, 9, 9, 11, 5, 34, 943737)
>>> now.replace(tzinfo=pytz.utc)
datetime.datetime(2016, 9, 9, 11, 5, 34, 943737, tzinfo=<UTC>)

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

>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2016, 9, 9, 11, 8, 55, 33027)
>>> tokyo_now = now.replace(tzinfo=pytz.timezone('Asia/Tokyo'))
>>> tokyo_now
datetime.datetime(2016, 9, 9, 11, 8, 55, 33027, tzinfo=<DstTzInfo 'Asia/Tokyo' JST+9:00:00 STD>)
>>> tokyo_now.astimezone(pytz.utc)
datetime.datetime(2016, 9, 9, 2, 8, 55, 33027, tzinfo=<UTC>)
>>> tokyo_now.astimezone(pytz.timezone("US/Hawaii"))
datetime.datetime(2016, 9, 8, 16, 8, 55, 33027, tzinfo=<DstTzInfo 'US/Hawaii' HST-1 day, 14:00:00 STD>)