2013-04-15 105 views
0

我有一个报价模型。并且当我在命令行访问它,它被显示在以下格式: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返回时区调整的小时数?

回答

0

你在config/application.rb中使用什么时区? Rails将打印日期调整到此文件中设置的时区。

+0

'config.time_zone ='东部时间(美国和加拿大)'< - 从我的配置文件 – GSto

+0

所以这就是它 - [时区](http://www.timeanddate.com/library/abbreviations/timezones /na/edt.html)尝试将您的time_zone更改为UTC(或仅仅评论此线路,因为默认的一次是UTC)。 – konole

相关问题