我无法在JRuby中正确使用Ruby的Time.new语法,即使它在文档中描述的其他Ruby版本中也可以工作。这种行为在各个方面都是不同的,而且在某些方面,我认为是不正确的。我在网上做了一些研究,但这似乎并不广为人知。
在我解决这个问题或者提交给JRuby小组之前,我想确认一下我不是在装傻。为了进行比较,我将使用一个非常不同的行为的基本示例。
在JRuby中:
jruby-1.6.8 :007 > JRUBY_VERSION
=> "1.6.8"
jruby-1.6.8 :008 > RUBY_VERSION
=> "1.9.2"
jruby-1.6.8 :009 > Time.new(2012, 10, 11, 0, 0, 0, '+09:00')
=> 2012-10-11 00:00:00 -0400
jruby-1.6.8 :010 > Time.new(2012, 10, 11, 0, 0, 0, '+9:00')
=> 2012-10-11 00:00:00 -0400在Ruby中:
1.9.2p320 :002 > RUBY_VERSION
=> "1.9.2"
1.9.2p320 :003 > Time.new(2012, 10, 11, 0, 0, 0, '+09:00')
=> 2012-10-11 00:00:00 +0900
1.9.2p320 :004 > Time.new(2012, 10, 11, 0, 0, 0, '+9:00')
ArgumentError: "+HH:MM" or "-HH:MM" expected for utc_offset我做错了什么?
发布于 2013-10-18 01:20:57
ruby有很多未记录的行为。正因为如此,所有的运行时之间都有一些差异。
一个尝试记录所有特殊部分的项目是RubySpec。
您可以转到此处查看您的示例是否有很好的文档记录:https://github.com/rubyspec/rubyspec/blob/master/core/time/new_spec.rb
https://stackoverflow.com/questions/19431166
复制相似问题