スケジューラー実装中のこと。
いろんな時間の予定を作って、特定の日時で切って取得するテストをする。
が、いざやってみると思ってない時間の予定が取得されてる。
おかしい。
とりあえずトレースしてみると、変な時間が入ってる。
午前0時に設定したはずが、午後3時とか。
境界テストのためにかなりの種類の予定を作っているので、
打ち間違いとか、間違って上書きとかの可能性を探って見るもだめ。
しょうがないので、
代入する時間、代入された時間をトレースしてみる。
代入するまではきちんとしてるのに、
オブジェクトに代入したとたんにおかしなことになってる。
あっれ~とか思いつつ、よくよく見てみると、
オブジェクトに代入した時間がJST +00:00になってるよ。
あ~、タイムロケールか~というわけで、タイムロケール設定をしていなかったんですねえ・・・
/config/environment.rbで、
config.time_zone = 'UTC'
を
config.time_zone = 'Tokyo'
に変更。
ちゃんとJST +09:00になりました。
ちゃんちゃん。
# ってダメダコレ
どうもDBへの入出力でおかしくなってるみたいで一度保存するとおかしな状態のままになってる。
しょうがないので、国内限定、ってことで
# config.time_zone = 'Tokyo'
とコメントアウトして対応。
orz
PR