2016-11-14 3 views
-2

ich aktuelle Zeit einer bestimmten Zeitzone zu bekommen versuche aber, wenn ich schreibe dies:Erst aktuelle Zeit eine Zeitzone

Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("America/Boise")); 
System.out.println(calendar.getTime()); 

druckt es immer UTC-Zeit, gefolgt von „UTC“ Wort vielleicht, weil auf der Server-Zeitzone ist auf UTC eingestellt, sollte aber trotzdem nicht passieren, da ich hier explizit die Zeitzone angegeben habe.

+2

Eine Kalenderinstanz wird in UTC gespeichert. Sie müssen ein SimpleDateFormat verwenden und die Zeitzone angeben, um das Datum und die Uhrzeit für eine bestimmte Zeitzone abzurufen. –

+0

Ja "" America/Boise "" wird TimeZone ID unterstützt. Sie können dies überprüfen, indem Sie java.util.TimeZone.getAvailableIDs() aufrufen. – aviad

+0

Mit Java 8: 'ZonedDateTime.now (ZoneId.of (" Amerika/Boise "))' ... – assylias

Antwort

0

Es gibt UTC zurück, weil die Methode TimeZone.getTimeZone(String id) die angegebene Zeitzone oder die GMT-Zone zurückgibt, wenn die angegebene ID nicht verstanden werden kann. In Ihrem Fall, da die angegebene ID nicht verstanden werden kann, wird die GMT-Zone zurückgegeben.

+2

"America/Boise" ist eine unterstützte Zeitzone ID wie von java.util.TimeZone.getAvailableIDs() verifiziert werden kann . – aviad

+0

Ja. Mein Fehler. –

Verwandte Themen