Heim >Java >javaLernprogramm >Warum zeigt SimpleDateFormat('yyyy-MM-dd'T'HH:mm:ss'Z'') manchmal IST anstelle von GMT an?
Verwirrung im SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") Zeitzoneninterpretation
In Java ermöglicht SimpleDateFormat Benutzern das Analysieren und Formatieren von Datumsangaben nach einem bestimmten Muster. Bei Verwendung des Musters „yyyy-MM-dd'T'HH:mm:ss'Z'“ wird erwartet, dass das „Z“ die GMT/UTC-Zeitzone darstellt. Es gab jedoch Bedenken, dass das resultierende Datum die IST-Zeitzone anstelle der erwarteten GMT-Zeitzone anzeigt.
Erklärung
Das „Z“-Zeichen im Muster bedeutet tatsächlich die GMT/UTC-Zeitzone. Es ist jedoch wichtig zu beachten, dass das einfache Hinzufügen des „Z“ zur Datums-/Uhrzeitzeichenfolge den Wert nicht auf magische Weise ändert. Die Zeitzone muss explizit für das SimpleDateFormat-Objekt mithilfe der setTimeZone-Methode festgelegt werden.
Problem lösen
Um sicherzustellen, dass das Ausgabedatum die GMT/UTC-Zeitzone korrekt widerspiegelt, man muss die Zeitzone explizit auf GMT einstellen, indem man die folgende Codezeile verwendet:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
Durch Festlegen der Zeitzone, Das SimpleDateFormat-Objekt interpretiert das „Z“ korrekt als GMT/UTC und zeigt das Datum in der gewünschten Zeitzone an.
Das obige ist der detaillierte Inhalt vonWarum zeigt SimpleDateFormat('yyyy-MM-dd'T'HH:mm:ss'Z'') manchmal IST anstelle von GMT an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!