Heim >Java >javaLernprogramm >Wie kann ich Java-Datums-/Uhrzeitobjekte genau zwischen Zeitzonen konvertieren?
Problem:
Konvertierung eines Datums und einer Uhrzeit von Die Umstellung von einer Zeitzone auf eine andere kann in Java eine Herausforderung sein. Der vom Benutzer bereitgestellte Code zum Konvertieren der aktuellen Zeit von GMT in GMT 13 scheint unkompliziert zu sein, aber der gleiche Ansatz schlägt fehl, wenn eine bestimmte Zeit eingestellt wird. Der Benutzer fragt sich, warum in solchen Fällen die Zeitzone der lokalen Maschine verwendet wird.
Lösung:
Die Verwirrung entsteht durch die Tatsache, dass beim Erstellen eines neuen Date-Objekts ohne eine Wenn Sie eine explizite Zeitzone angeben, wird davon ausgegangen, dass die Zeit in UTC angegeben ist. Wenn Sie jedoch die Zeit für ein Kalenderobjekt mithilfe von Millisekunden festlegen (wie in Calendar.setTime(new Date(1317816735000L))), wird davon ausgegangen, dass die Zeit in der Zeitzone des Hostcomputers liegt.
Zu Um dies zu umgehen, können Sie die Zeitzone für das SimpleDateFormat-Objekt explizit festlegen, bevor Sie die Uhrzeit formatieren:
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.TimeZone; Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date(1317816735000L)); SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy HH:mm:ss z"); // Set the time zone for the formatter sdf.setTimeZone(TimeZone.getTimeZone("GMT+13")); // Format the time with the specified time zone String newZealandTime = sdf.format(calendar.getTime());
Dieser Code gibt das Datum im zurück angegebene Zeitzone (GMT 13) als Zeichenfolge.
Schritte für die benutzerdefinierte Datums-/Uhrzeitkonvertierung:
Das obige ist der detaillierte Inhalt vonWie kann ich Java-Datums-/Uhrzeitobjekte genau zwischen Zeitzonen konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!