2011-07-28 56 views
3

我在現有的Ruby on Rails應用程序中具有廣泛的使用時間相關的計算升級紅寶石版本從紅寶石1.8.7到紅寶石1.9.2。但切換到紅寶石1.9.2 -p290後,它無法正常工作。我想這個問題是從紅寶石1.8.7導致的問題在紅寶石1.9.2中的不同時間格式

$ 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 

一些可以請告訴我如何解決這種問題或如何更改或覆蓋默認的紅寶石1.9.2格式返回給舊的或如何解決這個時間相關的變化在新版本的紅寶石中。

感謝

回答

2

可以使用

Time.now.asctime 

在1.9

編輯1:

好,取決於你打算如何使用它。這也許應該爲你工作:

irb(main):001:0> class Time 
irb(main):002:1> class << self 
irb(main):003:2> alias :orig_now :now 
irb(main):004:2> 
irb(main):005:2* def now 
irb(main):006:3>  orig_now.asctime 
irb(main):007:3> end 
irb(main):008:2> end 
irb(main):009:1> end 
=> nil 
irb(main):010:0> Time.now 
=> "Thu Jul 28 12:29:08 2011" # STRING 
irb(main):011:0> 

編輯2:

好吧,我得到了你的問題有點不對。上述補丁將導致Time.now返回字符串(不是Time對象)。

如果你只是想看看時間對象來表示不同的,你可以應用此:

irb(main):011:0> class Time 
irb(main):012:1> 
irb(main):013:1* def inspect 
irb(main):014:2> self.asctime 
irb(main):015:2> end 
irb(main):016:1> end 
=> nil 
irb(main):017:0> Time.now 
=> Thu Jul 28 13:41:16 2011 # TIME 
+0

感謝您的答覆,但我不希望在每個位置改變的計算,是有辦法通過做一些東西來覆蓋時間格式就像初始化器那樣覆蓋默認格式或更改默認格式。 – Nishant

+0

所以我應該使用代碼創建一個初始化文件,你已經提到過,並且沒有必要在每個位置都進行更改。對? – Nishant

+0

是的,初始化文件將起作用 –