Rails,如何在正确的时区内获取日期时间?

时间:2013-04-15 15:58:00

标签: ruby-on-rails ruby date timezone

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

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返回为时区调整的小时数?

1 个答案:

答案 0 :(得分:0)

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