RSpec と rspec-rails 2.10 でテストしています。
environment.rb で Rails のタイムゾーンを UTC に設定しましたが、RSpec のタイムゾーンは私のローカルタイムゾーンである東京になります。
environment/test.rb と spec_helper.rb に Time.zone 設定を書きましたが、修正されませんでした。
RSpecのタイムゾーンを設定するには?
RSpec と rspec-rails 2.10 でテストしています。
environment.rb で Rails のタイムゾーンを UTC に設定しましたが、RSpec のタイムゾーンは私のローカルタイムゾーンである東京になります。
environment/test.rb と spec_helper.rb に Time.zone 設定を書きましたが、修正されませんでした。
RSpecのタイムゾーンを設定するには?
問題は別の点です。タイムゾーンのオフセットを調整するメソッドを書きました。このメソッドは Rails のタイムゾーンを変更します。これがコードです。
class WeeklyEvent < ActiveRecord::Base
def adjust_time_zone_offset
Time.zone = timezone # => This is the problem. Rails Time.zone changes to timezone.
time_zone_offset = Time.zone.utc_offset # => 32400 JST offset 9 hours in seconds.
self.start_date_time = (start_date_time - time_zone_offset).in_time_zone('UTC')
end
end
japanese_event = WeeklyEvent.find(1)
p japanese_event.start_date_time #=> Sun, 01 Jan 2012 09:00:00 JST +09:00
Time.zone.now
の代わりに使用しTime.now
ます。