Veranlassen, dass SimpleDateFormat.parse () an ungültigen Daten fehlschlägt (z. B. wenn der Monat größer als 12 ist)

Ich benutzejava.text.SimpleDateFormat Zeichenfolgen der Form zu analysieren"yyyyMMdd".

Wenn ich versuche, einen String mit einem Monat größer als 12 zu analysieren, wird der Fehler nicht behoben, sondern auf das nächste Jahr übertragen. Voll lauffähiger Repro:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class ParseDateTest {

    public static void main(String[] args) throws ParseException {

        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
        Date result = format.parse("20091504"); // <- should not be a valid date!
        System.out.println(result); // prints Thu Mar 04 00:00:00 CST 2010
    }
 }

Ich hätte lieber eineParseException geworfen.

Gibt es eine unkomplizierte Möglichkeit, die Ausnahmebedingung zu erzwingen? Ich möchte nicht manuell überprüfen, ob der Monat größer als 12 ist. Das ist lächerlich.

Danke für jeden Vorschlag.

ANMERKUNG: Ich kenne Joda Time bereits, aber ich muss dies in einfachem JDK ohne externe Bibliotheken tun.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage