ruby - JRuby 是否正确处理 Time.new 和时区?

标签 ruby time jruby

我无法在 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

我做错了什么?

最佳答案

ruby 有很多未记录的行为。因此,所有运行时之间都存在一些差异。

一个试图记录所有特殊部分的项目是 RubySpec .

您可以转到此处查看您的示例是否有详细记录:https://github.com/rubyspec/rubyspec/blob/master/core/time/new_spec.rb

关于ruby - JRuby 是否正确处理 Time.new 和时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19431166/

相关文章:

ruby - ActiveRecord 中 Base、Schema 和 Migration 的区别

ruby-on-rails - Rails - 是否可以为外部图像提供本地 URL?

c++ - 在 C++17 中获取以毫秒为单位的时间?

perl - 为什么我不能减去 3 次?

Ruby 算法语法

ruby-on-rails - 为特定的 mysql 客户端版本安装 mysql2 gem?

java - 避免 double -> 日期转换时的舍入错误

java - 将时间/日期时间/数据转换为 java.util.Calendar?

java - JRuby DSL封装,排除标准库

java - 是否可以从 JRuby 创建 Java 类并在 Java 中使用它们?