So gehen Sie mit Kalenderzeitzonen mit Java um
Frage:
Sie haben einen Zeitstempel von Ihre Bewerbung, die aus einer beliebigen Zeitzone stammen kann. Allerdings müssen die Daten an einen WebService gesendet werden, der davon ausgeht, dass sie immer in GMT vorliegen. Sie müssen die Eingabezeit des Benutzers ohne dessen Wissen von seiner lokalen Zeitzone in GMT konvertieren.
Antwort:
Die Zeitzonenverarbeitung in Java kann verwirrend sein. Während Zeitstempel normalerweise in GMT gespeichert werden, verwendet die Calendar-Klasse standardmäßig die aktuelle Zeitzone des Systems. Um dieser Herausforderung zu begegnen, berücksichtigen Sie Folgendes:
import java.util.Calendar; import java.util.TimeZone; public class ConvertTimeZone { public static void main(String[] args) { // Example input time (EST) Calendar input = Calendar.getInstance(TimeZone.getTimeZone("EST")); input.set(2008, Calendar.MAY, 1, 18, 12, 0); // Create a Calendar in GMT Calendar gmt = convertToGmt(input); // Output the converted time (GMT) System.out.println(gmt.getTime()); // 2008-05-01 11:12:00 GMT } public static Calendar convertToGmt(Calendar cal) { Date date = cal.getTime(); TimeZone tz = cal.getTimeZone(); long msFromEpochGmt = date.getTime(); // Convert to milliseconds since epoch in GMT int offsetFromUTC = tz.getOffset(msFromEpochGmt); // Create a new Calendar in GMT and adjust for the offset Calendar gmtCal = Calendar.getInstance(TimeZone.getTimeZone("GMT")); gmtCal.setTime(date); gmtCal.add(Calendar.MILLISECOND, offsetFromUTC); return gmtCal; } }
Dieser Code führt die folgenden Schritte aus:
Mit diesem Ansatz können Sie die Eingabezeit des Benutzers von jeder Zeitzone genau in GMT konvertieren. Gewährleistung der Datenkompatibilität mit dem WebService.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich einen Zeitstempel von einer beliebigen Zeitzone in GMT in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!