我有一個用戶模型和一個朋友模型..我試圖跟蹤用戶最後一次聯繫朋友的時間。我有收集這些信息,並保存它守護進程:Rails 3.1時區,完全難倒
friend.last_contact = Time.parse(status.created_at) #this is where I go wrong
friend.save
我得到來自Twitter這個信息這是在UTC與像一個格式報告:當我進入軌道
"Thu Jan 05 23:29:00 +0000 2012"
控制檯並執行這些命令,則日期將以UTC時間正確保存爲UTC。然而,當我通過一個守護進程收集這些信息時,它將它保存在數據庫中,但是使用UTC時間,這使得它可以在4小時內關閉..我使用rails runner來運行守護進程,所以我相信主動支持應該沒事。我不能爲我的生活找不出什麼錯誤..
從我的服務器導軌安慰一些輸出:
1.9.1 :001 > Time.now
=> 2012-01-10 00:40:37 +0400
1.9.1 :002 > Time.zone.now
=> Mon, 09 Jan 2012 20:40:56 UTC +00:00
這是一個時間戳時,被檢索19分鐘前的消息保存:
1.9.1 :009 > b.last_contact
=> Tue, 10 Jan 2012 00:27:20 UTC +00:00
你會發現,它的服務器的「Time.now」 ..但保存爲UTC ...什麼是搞亂了我是,如果我進入軌道控制檯和I型:
> friend.last_contact = Time.now ; friend.save
或
> friend.last_contact = Time.zone.now ; friend.save
我拿出正確的時間......知道的任何幫助。
爲什麼'friend.last_contact = status.created_at'沒有工作? – Raphael 2012-01-09 20:53:41
對不起,你在那裏看到的只是我的最後一次嘗試.. status.created_at結束與db中相同的不正確的utc值.. – Inc1982 2012-01-09 20:57:30
我應該添加我也嘗試過:friend.last_contact = Time.now在守護進程中文件以及friend.last_contact = Time.zone.now,兩者都不起作用,同樣的誤導utc – Inc1982 2012-01-09 21:03:01