DateFormat parse()方法在java

时间:2017-09-02 12:15:57

标签: java date datetime

我的日期无效:有月份> 12。

String input = "12-30-2017"; 
DateFormat inputFormatter = new SimpleDateFormat("yyyy-MM-dd");
Date date = inputFormatter.parse(input);

当我在日期有调试光标时,它给了我12-06-2019。似乎是在增加月份并制作有效日期。

我需要在这里抛出无效日期。怎么做。

2 个答案:

答案 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格式来交换日期时间字符串。