Rails3のTimezoneについて

Rails3のTimezoneを設定する場合には、application.rbに下記のように書いたりするわけですが、

config.time_zone = 'Tokyo'

これだけだとActiveRecordからDBに登録される時間がUTCで保存されてしまいます。


これは前から知ってたのですが、表示の際にはActiveRecordがうまく変換してくれるのでいいかなーと思ってほっときました。
が、日付で検索をかけるときに、いちいちUTCに変換かけないといけないことが判明したので対応することにしました。


やりかたは簡単でapplication.rbに以下も追加します。
config.active_record.default_timezone = 'Tokyo'

config.active_record.default_timezone = :local

これでDBにも設定されたTimezoneで保存されます。


★追記 2011/10/15
default_timezoneに'Tokyo'と書くとApacheのerrorログに「warning: :database_timezone option must be :utc or :local」と大量にはき出されてました><
なので:localに修正

参考URL
http://d.hatena.ne.jp/mosa003/20110412/1302615346