2013-04-25 56 views
5

ho eseguito il seguente codice Java:Strano comportamento con fuso orario

TimeZone tz1 = TimeZone.getTimeZone("Etc/GMT-3"); 
System.out.println(tz1.getDisplayName()); 

Il display è GMT+03:00!

Sembra che quando utilizziamo i fusi orari con ID come Etc/GMTxx, il segno sia invertito. Perché ?

risposta

6

Questo è lo stile ETC:

http://en.wikipedia.org/wiki/Zoneinfo

L'area speciale di "etc" è utilizzato per alcune zone amministrative, in particolare per "Etc/UTC", che rappresenta Coordinated Universal Time. Per conformarsi allo stile POSIX, i nomi delle zone che iniziano con "Etc/GMT" hanno il segno invertito rispetto a quello che la maggior parte della gente si aspetta. In questo stile, le zone a ovest di GMT avere un segno positivo e quelli ad est hanno un segno negativo nel loro nome (es "Etc/GMT-14" è 14 ore avanti/est di GMT.)