SimpleDateFormat Falsche Datumsanalyse von „JJJJ-MM-TT HH:mm“
F:
Bei Verwendung von SimpleDateFormat führt der Versuch, eine Zeichenfolge im Format „JJJJ-MM-tt HH:mm“ in ein Datum zu analysieren, zu einem falschen Datum. Trotz der Einstellung setLenient(false) ist das Ergebnis immer noch ungenau. Was ist die Ursache für diese Diskrepanz?
A:
Das Problem liegt in der verwendeten Formatzeichenfolge: „JJJJ-MM-tt HH:mm“. Die korrekte Formatzeichenfolge zum Parsen einer Zeichenfolge im angegebenen Format sollte „jjjj-MM-tt HH:mm“ sein, wobei „jjjj“ das vierstellige Jahr angibt.
Die Dokumentation für SimpleDateFormat gibt an, dass „die Der Datumsteil muss in einem der vordefinierten JDK-Formate vorliegen, der Zeitteil muss in einem der vordefinierten Zeitformate vorliegen und das Trennzeichen zwischen Datum und Uhrzeit darf nur eines der vordefinierten Trennzeichen sein. Weitere Informationen finden Sie in der SimpleDateFormat-Dokumentation.
<code class="java">SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH);</code>
Durch Ändern der Formatzeichenfolge in „yyyy-MM-dd HH:mm“ sollte die Analyse das richtige Datum und die richtige Uhrzeit ergeben.
Das obige ist der detaillierte Inhalt vonWarum kann SimpleDateFormat „JJJJ-MM-TT HH:mm' trotz „setLenient(false)' nicht analysieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!