Rails,如何在正确的时区中获得日期时间的小时数



我有一个报价模型。当我从命令行访问它时,它以以下格式显示:

1.9.3p392 :058 > o = Offer.last
 => #<Offer id: 15, title: "Testing", valid_from: "2013-04-12 09:00:00", valid_until: "2013-04-12 14:00:00", created_at: "2013-04-12 18:31:54", updated_at: "2013-04-12 18:31:54"> 

在这个输出中,valid_fromvalid_until按照我期望的格式进行了格式化。然而,当我直接访问它们时,我得到了一些不同的东西:

1.9.3p392 :059 > o.valid_from
   => Fri, 12 Apr 2013 05:00:00 EDT -04:00 

问题来自于我在app/models/offer_model.rb内部的这个函数:

  def start_hour
    self.valid_from.strftime('%l').to_i unless self.valid_from.nil?
  end

当我使用上面的模型运行这个命令时,输出是5。在这种情况下,我希望它返回9。在这种情况下,我如何让start_hour返回为时区调整的小时?

您在config/application.rb中使用的是哪个时区?Rails将打印日期调整为此文件中设置的时区。

相关内容

  • 没有找到相关文章

最新更新