SimpleDateFormatter.parse gibt ein unerwartetes Ausgabeformat aus
In Ihrem Code sind Sie auf eine Diskrepanz gestoßen, bei der SimpleDateFormatter.format und SimpleDateFormatter.parse produzieren verschiedene Ausgabeformate. Sehen wir uns die Gründe für dieses Verhalten genauer an.
Die SimpleDateFormatter-Klasse erfordert sowohl Datumsformatierung als auch Zeitzoneninformationen, um Datumsangaben korrekt zu manipulieren. In Ihrem Fall ist das von Ihnen angegebene Format „TT/MM/JJJJ hh:mm:ss a“ (z. B. 23.05.2018 15:30:00 Uhr). Wenn Sie jedoch das formatierte Datum mit demselben Format zurückparsen, erkennt es die Zeitzone IST (Indian Standard Time) aufgrund des „a“ im Format, das die AM/PM-Bezeichnung darstellt.
Dies bedeutet, dass SimpleDateFormatter.parse das Datum mit der IST-Zeitzone interpretiert, was zu dem von Ihnen beobachteten Zeitstempel führt: „Mittwoch, 23. Mai, 15:30:00 IST 2018.“ Dieses Format unterscheidet sich von dem, das Sie ursprünglich angegeben haben, da es die Zeitzoneninformationen enthält.
Um dieses Problem zu beheben, ziehen Sie die folgenden Lösungen in Betracht:
Zusammenfassend lässt sich sagen, dass die Diskrepanz zwischen SimpleDateFormatter.format und SimpleDateFormatter.parse auf Überlegungen zur Zeitzone zurückzuführen ist. Durch die Nutzung der java.time-API oder die explizite Verwaltung von Zeitzonen in SimpleDateFormatter können Sie diese Formatierungsinkonsistenzen vermeiden und eine konsistente Datumsverarbeitung sicherstellen.
Das obige ist der detaillierte Inhalt vonWarum liefert SimpleDateFormat.parse ein unerwartetes Ausgabeformat?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!