アインシュタインの電話番号
2011.02.10
Herokuのタイムゾーンを日本時間に設定する

Herokuのデフォルトのタイムゾーンは太平洋標準時(PST)なので、それを日本標準時(JST)に設定する。

17時間の時差

昨日の記事のTwitter Botでも、タイムゾーンが違うことで、1日ズレた名言をツイートしていたことになる。不具合ではないけれど、ちょっと気持ち悪い。タイムゾーンを正しく設定することで、そのズレは解消される。

この記事の最後で、Herokuの管理画面が太平洋標準時(PST)で、日本との時差(17時間)を考える必要があると書いた。このHeroku管理画面のタイムゾーンまでは変更することは出来無いみたいだけど、アプリのタイムゾーンはコマンドラインから設定できるみたい。なので日本時間を設定すれば、アプリ上では時差を考える必要はなくなる。

以下は昨日のTwitter Botアプリのタイムゾーンを変更する手順。

デフォルトのタイムゾーン

Herokuのコンソールで現在のタイムゾーンを調べる。

$ heroku console
Ruby console for chaplin.heroku.com
>> Time.now
=> Tue Feb 08 07:33:47 -0800 2011

このようにデフォルトでは太平洋標準時(UTC-8)になっている。

日本標準時に変更

以下のコマンドでタイムゾーンを指定できる。

$ heroku config:add TZ=Asia/Tokyo
Adding config vars:
  TZ => Asia/Tokyo
Restarting app...done.

もう一度見てみるとちゃんと日本標準時(UTC+9)に変更されている。

$ heroku console
Ruby console for chaplin.heroku.com
>> Time.now
=> Wed Feb 09 00:34:30 +0900 2011

[Heroku]タイムゾーンを設定する - func09