Différences de fuseau horaire dans Java 8 et Java 7


Les exemples de dates d'impression de code java ci-dessous. 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());

     }
}

Cependant, il existe un fuseau horaire lorsqu'il est exécuté avec Java 7 et 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

J'ai essayé de rechercher de la documentation mais j'ai pu trouver une référence à cette amélioration/aberration.

Author: Abdelhak, 2015-11-24

1 answers

Voir les notes de version JRE:

JDK 7u60

Données IANA 2014b. JDK 7u60 contient les données de fuseau horaire IANA version 2014b

JDK 8u66

Les données IANA 2015f. JDK 8u66 contiennent les données de fuseau horaire IANA version 2015f.

Ensuite, vous pouvez voir dans les "Versions de données de fuseau horaire dans le logiciel JRE" qu'il y a eu un changement dans TZ DB 2014f:

Les abréviations du fuseau horaire de l'est australien sont maintenant AEST / AEDT pas EST, et de même pour les autres zones australiennes. C'est-à-dire que pour l'heure normale de l'est et l'heure d'été, les abréviations sont AEST et AEDT au lieu de l'ancienne EST pour les deux; de même, ACST/ACDT, ACWST/ACWDT et AWST/AWDT sont maintenant utilisées à la place des anciennes CST, CWST et WST. Cette modification n'affecte pas les décalages UTC, mais uniquement les abréviations de fuseaux horaires.

 2
Author: Adam Michalik, 2015-11-24 15:33:50