2013-09-23 60 views
1

陷入了一個非常困難的情況,同時保存一個模型實例,我得到了9小時前created_at的值。created_at與DateTime.now不同

在執行DateTime.now時,我確切地得到NOW時間,以及當我在SQL服務器上執行NOW()和current_timestamp時。

所以我的問題是:

  1. 是否可以替代默認created_at setter方法?或更改時間戳設置?或者,rails如何處理設置create_at方法?
  2. 是否有配置設置?初始化器,或任何可能指向我設置created_at方法的正確方向的東西?

任何幫助,將不勝感激

+0

好吧,剛剛通過調用'product_review.created_at'#=> Mon,23 Sep 2013 00:25:31 UTC +00:00 –

+0

所以這意味着時區設置不正確...所以可能是問題應該如何設置Rails引擎的時區? –

回答

2

http://www.ruby-doc.org/core-2.0.0/Time.html#method-c-now

Time.now - 返回初始化爲當前系統時間的對象。

created_at - 保存GMT時間,在我的情況下,它顯示10.00例如,但我的系統時間是12.00,因爲我比格林威治標準時間提前2小時。

設置時區在environment.rb

# config/environment.rb 
config.time_zone = "Central Time (US & Canada)" 

運行rake time:zones:all獲得實際的上市和使用需要,喜歡Central Time (US & Canada)之一。

+0

其實在一分鐘前找到答案:)謝謝,但無論如何這是正確的答案:) –

+1

http://archives.ryandaigle.com/articles/2008/1/25/what-s-new-in-edge- rails-easy-timezones –

+0

好文章,謝謝。 – rmagnum2002