我的日期无效:有月份> 12。
String input = "12-30-2017";
DateFormat inputFormatter = new SimpleDateFormat("yyyy-MM-dd");
Date date = inputFormatter.parse(input);
当我在日期有调试光标时,它给了我12-06-2019。似乎是在增加月份并制作有效日期。
我需要在这里抛出无效日期。怎么做。
答案 0 :(得分:2)
请尝试inputFormatter.setLenient(false);
答案 1 :(得分:1)
您的格式设置模式必须与输入字符串匹配。
使用现代java.time类而不是麻烦的遗留日期时间类。
DateTimeFormatter f = DateTimeFormatter.ofPattern( "MM-dd-uuuu" ) ;
LocalDate ld = LocalDate.parse( "12-30-2017" , f ) ;
尽可能使用标准ISO 8601格式来交换日期时间字符串。