Konvertieren von Java-Zeitstempeln in verschiedene Zeitzonen
In Java sind Zeitstempel zunächst standardmäßig in Greenwich Mean Time (GMT) angegeben. Wenn jedoch Benutzereingaben aus verschiedenen Zeitzonen verarbeitet werden, ist die Konvertierung von Zeitstempeln in die spezifische Zeitzone eines Benutzers erforderlich.
Stellen Sie sich dieses Szenario vor: Ein Benutzer in Eastern Standard Time (EST) stellt einen Zeitstempel von „5/1“ bereit /2008 18:12 Uhr (EST)“. Der Webdienst erwartet den Zeitstempel in GMT, nämlich „01.05.2008 18:12 Uhr (GMT)“.
Um Zeitstempel über verschiedene Zeitzonen hinweg genau zu konvertieren, ist ein benutzerdefinierter Konverter erforderlich. Hier ist der Code für „convertToGmt()“:
public static Calendar convertToGmt(Calendar cal) { Date date = cal.getTime(); TimeZone tz = cal.getTimeZone(); // Milliseconds since epoch GMT long msFromEpochGmt = date.getTime(); // Current offset from GMT at current date int offsetFromUTC = tz.getOffset(msFromEpochGmt); // Create a GMT calendar, set time, and add offset Calendar gmtCal = Calendar.getInstance(TimeZone.getTimeZone("GMT")); gmtCal.setTime(date); gmtCal.add(Calendar.MILLISECOND, offsetFromUTC); return gmtCal; }
Diese Methode konvertiert den Eingabekalender in einen GMT-Kalender und stellt so sicher, dass der Zeitstempel für den Webdienst in GMT korrekt ist. Beachten Sie, dass diese Methode derzeit keine Sommerzeitumstellungen berücksichtigt.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich Java-Zeitstempel in verschiedene Zeitzonen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!