SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") Zeigt die Zeitzone als IST an
The Der Konstruktor SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") dient zum Parsen Datumszeichenfolgen im ISO-8601-Format. Das Suffix „Z“ allein legt jedoch nicht die Zeitzone für das analysierte Datum fest.
Ihr Problem tritt auf, wenn Sie dieses Format verwenden, um eine Datumszeichenfolge wie „2013-09-29T18:46:19Z“ zu analysieren. Da „Z“ die Zulu-Zeit (UTC) darstellt, können Sie davon ausgehen, dass das analysierte Datum als UTC angezeigt wird. Es wird jedoch die Zeitzone IST (Indian Standard Time) angezeigt.
Verstehen des Problems
Der Schlüssel hier ist, dass Sie die nicht explizit festgelegt haben Zeitzone für das SimpleDateFormat-Objekt. Daher wird standardmäßig die Standardzeitzone der JVM verwendet, in Ihrem Fall wahrscheinlich IST. Während also die Datumszeichenfolge das Suffix „Z“ verwendet, um UTC anzugeben, analysiert das SimpleDateFormat-Objekt sie in IST.
Problem lösen
Um dieses Problem zu beheben und Stellen Sie sicher, dass das analysierte Datum in UTC angezeigt wird, und legen Sie die Zeitzone für SimpleDateFormat explizit auf GMT fest mit:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
Indem Sie die Zeitzone auf GMT setzen, weisen Sie SimpleDateFormat an, die Datumszeichenfolge in UTC zu analysieren, auch wenn sie das Suffix „Z“ hat. Dies garantiert, dass das analysierte Datum korrekt in UTC angezeigt wird.
Das obige ist der detaillierte Inhalt vonWarum zeigt SimpleDateFormat('yyyy-MM-dd'T'HH:mm:ss'Z'') IST anstelle von UTC an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!