Rails3 だと config/application.rb で 保存するタイムゾーンと 画面表示時に使うタイムゾーンを分けて設定できる
↓保存時のタイムゾーン
config.active_record.default_timezone = :local
※設定しない場合は default='utc'
↓表示時のタイムゾーン
config.time_zone = 'Tokyo'
※Controllerで ユーザのタイムゾーンを↑切り替えれば 指定のタイムゾーンで表示される(はず)
ただし、↑この便利な設定の恩恵にあずかるには、保存する 日付フィールドを ただのTimeで保存してはダメ
ActiveSupport::TimeWithZoneクラスにする必要がある
start_at = Time.parse("入力された日付")
↑とかだと Timeクラスになっってしまう(コンソールとかで確認できる)
start_at = Time.zone.parse("入力された日付")
↑常に Time.zone を使うようにしないとダメ
参考)
Rails3系のtimezoneの扱いに関するメモ #Rails - Qiita http://qiita.com/items/68341489a9c5149b815d
[Rials3]Rails3 + ActiveRecord で正しくtimezoneを設定する - Future Journal ~未来志向で行こう~ http://d.hatena.ne.jp/twodollarz/20120703