ISO8601表記の日時をJSTにしたい
OpenWeatherMapから取ってきたデータの中に"日時"がありますが、そのタイムゾーンがUTCでした。私は日本人なのでJSTで取りたい!ということで、タイムゾーン変換のやり方を調べたのでメモ。
>>> import pyowm >>> import dateutil.tz >>> from dateutil.parser import parse >>> owm = pyowm.OWM('*****') >>> >>> obs_list = owm.weather_at_id(1853008) >>> weather = obs_list.get_weather() >>> owmdate_utc = weather.get_reference_time(timeformat='iso')
ここまでは以前書いたものとほぼ同じ。datetimeでparseするために関連のものをimportしてるのが増えただけです。
# parseしてJSTに変換 >>> owmdate_utc_parse = parse(owmdate_utc) >>> jpdate = owmdate_utc_parse.astimezone(dateutil.tz.gettz('Asia/Tokyo')) # その結果 >>> owmdate_utc_parse datetime.datetime(2016, 2, 18, 10, 0, tzinfo=tzutc()) >>> jpdate datetime.datetime(2016, 2, 18, 19, 0, tzinfo=tzfile('Asia/Tokyo'))
これで日本時間が取れます。これでDBに放り込む準備ができたかな。