2010-05-31 66 views
5

我在Rails 3測試版的時區支持方面苦苦掙扎,我想知道它是一個錯誤還是我做錯了什麼。他的問題是:Rails 3時區錯誤

 
> Time.zone = 'Madrid' # it is GMT+2 
=> "Madrid" 
> c = Comment.new 
=> #<Comment id: nil, title: "", pub_at: nil> 
> c.pub_at = Time.zone.parse('10:00:00') 
=> Mon, 31 May 2010 10:00:00 CEST +02:00 
> c.save 
> c 
=> #<Comment id: 3, title: "", pub_at: "2010-05-31 08:00:00"> 
> c.reload 
=> #<Comment id: 3, title: "", pub_at: "2010-05-31 08:00:00"> 
ruby-1.8.7-p249 > c.pub_at 
=> Mon, 31 May 2010 13:00:00 CEST +02:00 

正如你所看到的,pub_at屬性被正確地存儲在數據庫中,但是當它被檢索它增加了3小時,我懷疑這是因爲它是用我的本地時區是在GMT-3。

在rails 2.3.5中相同的命令序列完美地工作。

有沒有粘性?我應該報一張票嗎?

回答

3

如果我記得不錯,所有的日期都存儲在數據庫中作爲UTC。

而軌和控制檯不處理日期的方式相同!

所以,你應該嘗試在應用程序中測試通過設置時區到你的application.rb中

config.local_zone = 'Madrid' 

,然後打印值!你應該看到正確的時間。

希望得到這個幫助