【问题标题】:How to set RSpec time zone?如何设置 RSpec 时区?
【发布时间】:2012-08-12 10:42:10
【问题描述】:

我正在使用 RSpec 和 rspec-rails 2.10 进行测试。

我在 environment.rb 中将 Rails 时区设置为 UTC,但 RSpec 时区变成了我的本地时区,东京。

我已经在环境/test.rb 和 spec_helper.rb 中编写了 Time.zone 设置,但没有修复。

如何设置RSpec时区?

【问题讨论】:

  • 能发个代码吗? “RSpec time zone”有点模棱两可。
  • @TanzeebKhalili,您发布的链接是一个 highcharts javascript fiddle,与 Rspec、Timezones 或 ActiveSupport 无关。

标签: ruby-on-rails-3 rspec2 rspec-rails


【解决方案1】:

问题是另一点。 我写了一个调整时区偏移的方法,该方法改变了 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

【讨论】:

    【解决方案2】:

    使用Time.zone.now 代替Time.now

    【讨论】:

    • 问题是关于如何更改时区
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-24
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    • 2017-07-10
    相关资源
    最近更新 更多