1
我無法在JRuby中正確使用Ruby的Time.new
語法,即使這可以在文檔中描述的其他Ruby版本中使用。我認爲,這種行爲在各個方面都有所不同,在某些方面也是不正確的。我在網上做了一些研究,看起來這不是衆所周知的。JRuby是否正確處理Time.new和時區?
在我修復此問題或將其提交給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
我在做什麼錯?
其實,我覺得這個項目是爲了記錄所有的紅寶石應遵循的規範。我發現了這個規範並且運行了這個語句:'Time.new(2000,1,1,0,0,0,「+05:30」)。utc_offset#=> -18000'並且規範聲明應該== 19800 '所以在這種情況下它會失敗。好找! – WattsInABox
@WattsInABox它實際上是因爲所有的「奇怪」部分 – phoet