タイムゾーンを設定しました。
config.time_zone = 'Mountain Time (US & Canada)'
コンソールからクリスマスイベントを作成しています...
c = Event.new(:title => "Christmas")
時間の使用:
c.start = Time.new(2012,12,25)
=> 2012-12-25 00:00:00 -0700 #has correct offset
c.end = Time.new(2012,12,25).end_of_day
=> 2012-12-25 23:59:59 -0700 #same deal
DateTimeの使用:
c.start = DateTime.new(2012,12,25)
=> Tue, 25 Dec 2012 00:00:00 +0000 # no offset
c.end = DateTime.new(2012,12,25).end_of_day
=> Tue, 25 Dec 2012 23:59:59 +0000 # same
入力がconfig.time_zoneにあると想定して、不注意にDateTimeを使用してきましたが、これがデータベースに保存されるときに変換は行われません。戻り値(db用にフォーマットされたもの)とまったく同じように保存されます。
Timeの使用は実際には大したことではありませんが、DateTimeを使用していて、それを正しいゾーンに配置したい場合はいつでも手動でオフセットする必要がありますか?