我正在退出的Ruby on rails应用程序中将ruby版本从ruby 1.8.7升级到ruby 1.9.2,该应用程序广泛使用与时间相关的计算。但在切换到ruby 1.9.2 -p290之后它无法正常工作。我想问题是
$ 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
有些人可以告诉我如何解决这类问题或如何更改或覆盖默认的ruby 1.9.2格式回旧版或如何解决这个时间相关的更新版本的ruby。
由于
答案 0 :(得分: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对象)。
如果您只是希望将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