„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum analysiert SimpleDateFormat „JJJJ-MM-TT HH:mm“ falsch?

Warum analysiert SimpleDateFormat „JJJJ-MM-TT HH:mm“ falsch?

Veröffentlicht am 21.12.2024
Durchsuche:386

Why Does SimpleDateFormat Incorrectly Parse \

SimpleDateFormat analysiert „YYYY-MM-dd HH:mm“ falsch

Beim Versuch, eine Zeichenfolge im Format „YYYY-MM -dd HH:mm" zu einem Datum hinzufügen, stoßen einige Entwickler auf unerwartete Datumsergebnisse. Dies tritt auf, wenn die SimpleDateFormat-Klasse mit der Einstellung „Lenient“ auf „false“ verwendet wird.

Der folgende Codeausschnitt veranschaulicht das Problem:

Date newDate = null;
String dateTime = "2013-03-18 08:30";
SimpleDateFormat df = new SimpleDateFormat("YYYY-MM-dd HH:mm", Locale.ENGLISH);
df.setLenient(false);
try {
    newDate = df.parse(dateTime);
} catch (ParseException e) {
    throw new InvalidInputException("Invalid date input.");
}

Dieser Code erzeugt ein falsches Datum:

Sun Dec 30 08:30:00 EST 2012 (wrong)

Um dieses Problem zu beheben, überprüfen Sie, ob das Jahresformat angegeben ist im SimpleDateFormat-Muster ist Kleinbuchstabe „yyyy“ statt Großbuchstabe "YYYY."

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH);

Durch diese Anpassung wird der Code analysiert die Zeichenfolge „JJJJ-MM-TT HH:mm“ korrekt. Weitere Informationen finden Sie in der SimpleDateFormat-Dokumentation.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3