2014-12-10 10 views
5

http://www.oracle.com/technetwork/java/javase/tzdata-versions-138805.htmlnuovo file di informazioni sul fuso orario Java non sta sostenendo AEST/AEDT

In precedenza link del sito web di Oracle si dice che A partire dalla versione tzdata2014f, Java sostiene AEST/AEDT invece di EST per fuso orario australiano, ma ho tzdata2014i corrente la versione ancora non visualizza solo EST. Ho perso qualcosa o c'è qualcosa che devo fare?

Qui è piccolo programma di esempio che ho usato,

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)); 
    } 
} 
} 

e qui è il mio tempo versione zona di file di dati

C:> java -jar tzupdater.jar -V versione 1.4.9 tzupdater-b01 Versione dati fuso orario JRE: tzdata2014i Versione dati fuso orario incorporata: tzdata2014i

Grazie in anticipo per qualsiasi aiuto.

saluti, Benny

risposta

0

tua domanda si risponde da sola. A partire dal tzdata2014f e successivamente saranno inclusi il A:

australiani abbreviazioni fuso orario orientale sono ora AEST/AEDT non EST, e allo stesso modo per le altre zone australiane. Cioè, per lo standard orientale e l'ora legale le abbreviazioni sono AEST e AEDT invece dell'ex EST per entrambi; Allo stesso modo, ACST/ACDT, ACWST/ACWDT e AWST/AWDT vengono ora utilizzati al posto dell'ex CST, CWST e WST.

Questa modifica non ha effetto sugli scostamenti UTC, ma solo sulle abbreviazioni dei fusi orari.

Si dice che si sta utilizzando tzdata2014i, che viene dopo tzdata2014f. Allora perché sei confuso sul non vedere più EST?

nomi Fuso orario

Tra l'altro, non si dovrebbe utilizzare questi 3-4 lettera abbreviazioni. Non sono veri fusi orari, non standardizzati e non unici (come si vede qui con la collisione EST).

Utilizzare invece proper IANA time zone names nel formato continent/region. Ad esempio, Australia/Sydney.

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

instant.toString(): 2016-09-29T22: 42: 40.063Z

now.toString(): 2016-09-30T08: 42: 40,063 + 10: 00 [l'Australia/Sydney]

FYI, Wikipedia ha una pagina su Time in Australia.