2013-04-15 63 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

相關問題