簡體   English   中英

Ruby Enterprise Edition以錯誤的格式提供Time.now

[英]Ruby Enterprise Edition giving Time.now in wrong format

在我的VPS(Ubuntu 10.04LTS)上,我具有通過RVM安裝的ree-1.8.7-2011.03和ruby-1.9.2-p180。 我的問題是,當我在ree-1.8.7(irb)中調用Time.now時,我得到Thu May 12 12:16:50 +0200 2011 ,而在ruby-1.9.2(irb)中也是如此得到2011-05-12 12:17:44 +0200

問題是日期的ree版本在我的rails查詢中不可用(生成的SQL簡直是壞掉的)。 目前,在每個查詢中都不能使用strftime格式化時間,而且都不能切換到1.9.2,因此我需要您的幫助來弄清楚為什么會發生並修復它。

謝謝你的幫助!

這不是REE問題。 Ruby 1.9.2更改了Time#to_s的默認格式。

$ rvm use 1.8.7
ruby-1.8.7-p334 :001 > Time.now
# => Thu May 12 12:42:35 +0200 2011 

$ rvm use 1.9.2
ruby-1.9.2-p180 :001 > Time.now
# => 2011-05-12 12:42:44 +0200 

最好不要使用默認的Time#to_s格式,而是始終使用自定義幫助程序或方法格式化日期輸出,這是一個好習慣,否則您將無法控制信息的顯示方式。

目前無法在每個查詢中使用strftime格式化時間

它不僅是一個選擇,而且應該是您的首選。 我強烈建議您修復現有代碼,以使用自定義格式設置方法。

臨時的解決方法是重寫Ruby 1.8.7 Time#to_s方法以使用自定義格式。 但是,進行此更改可能會破壞其他庫。

在config / initializers / app.rb中怎么樣

Time::DATE_FORMATS[:default] = "Your preferred date format"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM