Le nouveau fichier d'informations sur le fuseau horaire java ne prend pas en charge AEST/AEDT


Http://www.oracle.com/technetwork/java/javase/tzdata-versions-138805.html

Dans le lien ci-dessus du site Web Oracle, ils disent que Depuis la version tzdata2014f, Java prend en charge AEST/AEDT au lieu de EST pour le fuseau horaire australien, mais j'ai la version tzdata2014i actuelle, elle n'affiche toujours pas EST uniquement. Ai-je manqué quelque chose ou dois-je faire quelque chose?

Voici un petit exemple de programme que j'ai utilisé ,

  import java.util.*;

public class TZ {
 public static void main(String[] args) {

 System.out.println(System.getProperty("java.home"));
  for (String id : TimeZone.getAvailableIDs()) {
   if (!id.startsWith("Australia/")) continue;
   TimeZone tz = TimeZone.getTimeZone(id);
   System.out.println(id + ": " + "Daylight: False : " + tz.getDisplayName(false, TimeZone.SHORT) + "/" + " Daylight: True : "+ tz.getDisplayName(true, TimeZone.SHORT));
  }
 }
}

Et voici mon fichier de données de fuseau horaire version

C:>java-jar tzupdater.jar-V version 1.4.9-b01 de tzupdater Version de données de fuseau horaire JRE: tzdata2014i Version de données de fuseau horaire intégrée: tzdata2014i

Merci d'avance pour toute aide.

Cordialement, BennY

Author: wolφi, 2014-12-10

1 answers

Votre question se répond. À partir de tzdata2014f et plus tard le {[1] } sera inclus:

Les abréviations du fuseau horaire de l'est australien sont maintenant AEST/AEDT et non 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.

Ce changement n'affecte pas les décalages UTC, seulement les abréviations de fuseau horaire.

Vous dites que vous utilisez tzdata2014i, qui vient après tzdata2014f. Alors pourquoi êtes-vous confus de ne plus voir EST?

Noms de fuseaux horaires

En passant, vous ne devriez pas utiliser ces abréviations de 3-4 lettres. Ce ne sont pas de vrais fuseaux horaires, non standardisés et non uniques (comme on le voit ici avec EST collision).

Utilisez plutôtles noms de fuseaux horaires IANA appropriés au format continent/region. Pour exemple, Australia/Sydney.

Instant instant = Instant.now();
ZoneId zoneId = ZoneId.of( "Australia/Sydney" );
ZonedDateTime zdt = instant.atZone( zoneId );

Éphémère.toString (): 2016-09-29T22:42: 40.063 Z

Maintenant.toString (): 2016-09-30T08:42:40.063+10: 00[Australie/Sydney]

Pour info, Wikipedia a une page surTemps en Australie .

 0
Author: Basil Bourque, 2016-09-29 22:44:04