【问题标题】:Converting Time/DataTime/Data into java.util.Calendar?将时间/日期时间/数据转换为 java.util.Calendar?
【发布时间】:2009-05-17 21:59:38
【问题描述】:

是否有可能以简单的方式将 JRuby Time/DataTime/Data 转换为 java.util.Calendar,包括时区?

在#jruby 上,我收到了这样的代码cal.set_time_in_millis(time.to_i),但我丢失了有关时区的信息。所以更具体的问题是如何转换时区,但我更愿意问更广泛的问题,以防有更简单的方法。

【问题讨论】:

    标签: java ruby calendar timezone jruby


    【解决方案1】:

    您可以使用 #to_java 方法将 Ruby 时间对象转换为 java.util.Date:

    require 'java'
    Time.now.to_java
    

    请注意,当将 Ruby 对象传递给 Java 方法时,这种强制转换会自动发生。

    【讨论】:

    • IIRC 我已经发布了一个关于它的错误 ;)
    【解决方案2】:

    我知道 Time 不存储时区,所以 Time.now.zone 返回的是本地时区。

    因此转换成java.util.Data很简单:

    data = java.util.Date.new(date.to_i*1000)
    

    【讨论】:

    • 请注意,这样会丢失一些精度。这会更准确:data = java.util.Date.new(date.to_i * 1000 + date.usec / 1000)
    猜你喜欢
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-29
    相关资源
    最近更新 更多