当前位置: 首页 > 知识库问答 >
问题:

IBM vs Oracle/Sun JDK,java。util。Timzone getOffset()的行为不同

袁奇文
2023-03-14

IBM vs Oracle/Sun JDK,java。util。Timzone表现不同,

IBM JDK 1.5与Sun/Oracle JDK 1.6

import java.util.*;
class TimeTest {

public static void main(String args[]){

long now = System.currentTimeMillis();

System.out.println("EST : " + TimeZone.getTimeZone("EST").getOffset(now));
System.out.println("US/Eastern : " + TimeZone.getTimeZone("US/Eastern").getOffset(now));

}
}


***IBM JVM ouput

EST : -14400000
US/Eastern : -14400000

Oracle JVM

EST : -18000000
US/Eastern : -14400000
IBM JDK

java -version

java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build pxi32devifx-20090811 (SR10 +IZ56666+IZ56751))
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Linux x86-32 j9vmxi3223-20090707 (JIT enabled)
J9VM - 20090706_38445_lHdSMr
JIT  - 20090623_1334_r8
GC   - 200906_09)
JCL  - 20090811


Oracle JDK

java -version

java version "1.6.0_24"                                         
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)            
Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode, sharing)

更新,使用IBM JDK 6测试,它与oracle/sun java-version java version“1.6.0”java(TM)SE Runtime Environment(build pxi3260sr6ifix-20091015\U 01(SR6 152211 155930 156106))IBM J9 VM(build 2.4,JRE 1.6.0 IBM J9 2.4 Linux x86-32 JVMXI326SR6-20091001\U 43491(启用JIT,启用AOT)J9VM-20091001\U 043491 JIT-r9\U 20090902\U 1330ifx1的输出相匹配-20090817\u AA)JCL-20091006\u 01

java TimeTest
EST : -18000000
US/Eastern : -14400000***

共有2个答案

卫宏硕
2023-03-14

我认为可以肯定地说,您的IBMJDK安装有一个其他JDK安装的更旧的时区数据库。JDK 1.5于2004年发布。

杭志泽
2023-03-14

IBM告诉我们答案:

2006年,奥尔森数据库中EST时区标识符的含义发生了变化。历史上,EST参考美国东部标准时间,并对夏令时进行了调整。更改后,EST是指东部标准时间,不调整夏令时。还引入了一个新的标识符EST5EDT,其含义与原始EST标识符相同。

 类似资料:
  • 为什么JSF2/Facelet的ui:repeat不接受java。util。迭代器的值?可以在迭代器后面隐藏如此多的实现和内存节约,因为长度不需要知道,所以拥有它是非常有用的。但是相反,我需要将迭代器转换为列表,并抛弃所有优点,以便ui:repeat。 可能有阶段、时间或可序列化的原因,但我对可用文档的浏览并没有给出这些原因。我们还没有使这一不可能成为可能的科学吗?

  • 当试图运行我的java程序时,我收到以下错误 适用代码: 澄清一下,当试图将产品和价值的TreeMap数据放入exportsData时,会出现问题。当试图将exportsData添加到将其键(国家)与exportsData(价值)相关联的exportsTable时,同样适用。我明白错误的含义,只是不知道如何修复它。此外,不允许库(目的是了解输入数据流向“行/列”,并尝试使用Trees、HashMa

  • 你能解释一下为什么会发生这种情况,我怎样才能解决它吗? 所以我使用的是Oracle ADF和shuttle组件。我使用

  • 这是家庭作业。 我正在用链表做一个堆栈。我选择使用Java的Java中的链表。util。LinkedList包。当我在主类中调用addFirst()方法时,程序将无法完成。它的行为就像一个无限循环,但据我所知,没有涉及循环。代码如下: 这是调用push()方法的Main类。 测试LinkedListStack非常困难。java,因为我无法将任何内容推送到堆栈上。我不知道怎么了。

  • 收集java时。util。流动流,为什么不调用其方法void close()?

  • 问题内容: 考虑下面的小例子: 如果使用jdk1.7.0.55编译以上示例,则输出为: 但是当使用jdk1.8.0.25时,输出为: 是否有人知道这是jdk1.8.0.25中的错误还是公共默认方法在这里重新出现? 问题答案: 此处的行为正确,因为它可以准确告诉您在类中找到的内容。如果输入使用Java 7目标的编译器(或更旧的编译器),您将看不到Java 7实现的输出有所不同。 这是 编译器 ,其行