Java8和Java7中的时区差异

Java8和Java7中的时区差异,java,timezone,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,

下面是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和Java 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

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

请参阅JRE发行说明:

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

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

然后您可以在中看到,TZ DB 2014f发生了变化:

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