Я использую 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 без внешних библиотек.