3

我正在退出 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​​ 中与此相关的更改。

谢谢

4

1 回答 1

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
于 2011-07-28T09:05:59.873 回答