Java 8和Java 7中的时区差异

时间:2015-11-24 12:44:42

标签: java timezone

以下示例java代码打印日期。 DateTest.java

import java.util.GregorianCalendar;
import java.util.Calendar;

public class DateTest{

     public static void main(String []args){
         Calendar cal = new GregorianCalendar();
         cal.set(2013, 10, 13, 0, 0, 0);
         System.out.println(cal.getTime());

     }
}

但是,使用Java 7和8运行时有一个时区: - $ unset TZ

$ /sv/app/9.00/java/product/jdk1.8.0_66/bin/java DateTest 
Wed Nov 13 00:00:00 AEST 2013

$ /sv/app/9.00/java/product/jdk1.7.0_60/bin/java DateTest
Wed Nov 13 00:00:00 EST 2013

我已尝试搜索文档,但可以找到此增强/偏差的参考。

1 个答案:

答案 0 :(得分:4)

请参阅JRE发行说明:

JDK 7u60

  

IANA Data 2014b。 JDK 7u60包含IANA时区数据版本2014b

JDK 8u66

  

IANA Data 2015f。 JDK 8u66包含IANA时区数据版本2015f。

然后你可以在"Timezone Data Versions in the JRE Software"看到TZ DB 2014f发生了变化:

  

澳大利亚东部时区缩写现在是AEST / AEDT而不是EST,其他澳大利亚地区也是如此。也就是说,对于东部标准和夏令时,缩写是AEST和AEDT而不是前两者的EST;类似地,现在使用ACST / ACDT,ACWST / ACWDT和AWST / AWDT代替前CST,CWST和WST。此更改不会影响UTC偏移,只会影响时区缩写。