简体   繁体   English

Java 8和Java 7中的时区差异

[英]Timezone differences in Java 8 and Java 7

The below sample java code print dates. 以下示例java代码打印日期。 DateTest.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());

     }
}

However, there is a time zone when run with Java 7 and 8:- $ unset TZ 但是,使用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

I've tried searching for documentation but could find a reference to this enhancement/aberration. 我试过搜索文档,但可以找到这个增强/畸变的参考。

See the JRE release notes: 请参阅JRE发行说明:

JDK 7u60 JDK 7u60

IANA Data 2014b. IANA Data 2014b。 JDK 7u60 contains IANA time zone data version 2014b JDK 7u60包含IANA时区数据版本2014b

JDK 8u66 JDK 8u66

IANA Data 2015f. IANA Data 2015f。 JDK 8u66 contains IANA time zone data version 2015f. JDK 8u66包含IANA时区数据版本2015f。

Then you can see in the "Timezone Data Versions in the JRE Software" that there has been a change in TZ DB 2014f: 然后,您可以在“JRE软件中的时区数据版本”中看到TZ DB 2014f发生了变化:

Australian eastern time zone abbreviations are now AEST/AEDT not EST, and similarly for the other Australian zones. 澳大利亚东部时区缩写现在是AEST / AEDT而不是EST,其他澳大利亚地区也是如此。 That is, for eastern standard and daylight saving time the abbreviations are AEST and AEDT instead of the former EST for both; 也就是说,对于东部标准和夏令时,缩写是AEST和AEDT而不是前两者的EST; similarly, ACST/ACDT, ACWST/ACWDT, and AWST/AWDT are now used instead of the former CST, CWST, and WST. 类似地,现在使用ACST / ACDT,ACWST / ACWDT和AWST / AWDT代替前CST,CWST和WST。 This change does not affect UTC offsets, only time zone abbreviations. 此更改不会影响UTC偏移,仅影响时区缩写。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM