【问题标题】:Different Time Format in ruby 1.9.2 from ruby 1.8.7 causing issuesruby 1.9.2 与 ruby​​ 1.8.7 中的不同时间格式导致问题
【发布时间】:2011-07-28 08:36:27
【问题描述】:

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

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby time ruby-1.9.2


    【解决方案1】:

    你可以使用

    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
    

    【讨论】:

    • 感谢您的回复,但我不想更改每个位置的计算,有没有办法通过执行初始化程序来覆盖时间格式,例如覆盖默认格式或更改默认格式.
    • 那么我应该使用您提到的代码创建一个初始化文件,并且不需要在每个位置进行更改。对吗?
    • 好的,感谢 Vlad Khomich 抽出宝贵时间,让我尝试创建一个初始化文件,然后放置您提供的类,然后尝试运行代码。
    • Time.now 现在以正确的格式向我显示,但它向我显示此错误,未定义方法 strftime' for "Thu Jul 28 09:59:42 2011":String , what i have done is Time.now.to_time.strftime("%m") but gives me error on server startup .. .rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/webrick/log.rb:83:in log': undefined method `strftime' for "Thu Jul 28 10:06:49 2011 ":String (NoMethodError)
    • (对象不支持#inspect)这是它显示给我的,当我在我的rails控制台中尝试时
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多