Uszkodzenie SimpleDateFormat.parse () w nieprawidłowych datach (np. Miesiąc jest większy niż 12)

używamjava.text.SimpleDateFormat analizować ciągi formularza"yyyyMMdd".

Jeśli spróbuję przeanalizować ciąg znaków z miesiącem większym niż 12, zamiast nie udać się, przechodzi do następnego roku. Pełne 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
    }
 }

Wolałbym miećParseException rzucony.

Czy jest jakiś niezręczny sposób wymuszenia wyjątku? To znaczy, nie chcę ręcznie sprawdzać, czy miesiąc jest większy niż 12. To śmieszne.

Dziękujemy za wszelkie sugestie.

UWAGA: Wiem już o Joda Time, ale potrzebuję tego zrobić w zwykłym JDK bez zewnętrznych bibliotek.

questionAnswers(3)

yourAnswerToTheQuestion