Заставьте SimpleDateFormat.parse () завершиться с ошибкой в недопустимые даты (например, месяц больше 12)

я используюjava.text.SimpleDateFormat разобрать строки вида"yyyyMMdd".

Если я попытаюсь проанализировать строку с месяцем, превышающим 12, вместо сбоя, она переносится на следующий год. Полная работоспособность репро:

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

Я бы предпочелParseException выброшены.

Есть ли какой-нибудь нехакерный способ заставить исключение случиться? Я имею в виду, я не хочу вручную проверять, больше ли месяц, чем 12. Это смешно.

Спасибо за любое предложение.

ПРИМЕЧАНИЕ: я уже знаю о Joda Time, но мне нужно сделать это в простом JDK без внешних библиотек.

Ответы на вопрос(3)

Ваш ответ на вопрос