Make SimpleDateFormat.parse () falha em datas inválidas (por exemplo, mês é maior que 12)

estou a usarjava.text.SimpleDateFormat para analisar cadeias da forma"yyyyMMdd".

Se eu tentar analisar uma string com um mês maior que 12, em vez de falhar, ela passa para o próximo ano. Repro completamente executável:

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
    }
 }

Eu preferiria ter umParseException jogado.

Existe alguma maneira não hacky de forçar a exceção a acontecer? Quer dizer, eu não quero verificar manualmente se o mês é maior que 12. Isso é meio ridículo.

Obrigado por qualquer sugestão.

NOTA: Eu já sei sobre o Joda Time, mas preciso que isso seja feito no JDK simples sem bibliotecas externas.

questionAnswers(3)

yourAnswerToTheQuestion