2011-07-28 4 views
3

時間関連の計算を広範囲に使用している私の既存のRuby on railsアプリケーションで、rubyバージョンをruby 1.8.7からruby 1.9.2にアップグレードしています。しかし、Ruby 1.9.2 -p290に切り替わった後は動作しません。私は、関連する変更をいくつかは、どのようにこの種の問題を解決するか、どのように戻って古いものにデフォルトのルビー1.9.2形式を変更したり、上書きすることができますを教えてくださいすることができたり、この時間を解決するためにどのような問題がruby​​からの1.9.2の異なる時刻形式1.8.7問題を引き起こす

$ 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.now.asctime 

1 EDIT

1.9で使用することができます

おかげ

答えて

2

:うまく

は、あなたがそれを使用するつもりだ方法によって異なります。これはおそらく、あなたのために働く必要があります。

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> 

EDIT 2:

[OK]を、私はあなたの質問が多少間違ってました。上記のパッチは、Time.nowに(Timeオブジェクトではなく)文字列を返させます。

あなただけの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

うん、イニシャライザファイルが動作する –

関連する問題