SimpleDateFormat类格式化 java.text.ParseException: Unparseable date 异常处理

我们使用SimpleDateFormat格式化日期类型的时候,如果遇到了如下报错:

java.text.ParseException: Unparseable date: "2021-01-02"
	at java.text.DateFormat.parse(DateFormat.java:366)
	at com.itzhimei.study.Test5.main(Test5.java:32)

那么原因很简单,是因为SimpleDateFormat指定的格式化类型,和输入的目标格式化字符串的日期类型不匹配。

看一下错误代码示例:

//SimpleDateFormat格式化
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
	sdf.parse("2021-01-02");
} catch (Exception e) {
	e.printStackTrace();
}

SimpleDateFormat指定的格式化格式为:yyyy-MM-dd HH:mm:ss

但我们实际给出的格式化的字符串是:”2021-01-02″,是yyyy-MM-dd格式的,所以报了文章开头的错误。

解决办法就是将sdf.parse()方法中的目标参数也指定为yyyy-MM-dd HH:mm:ss格式,例如:sdf.parse(“2021-01-02 00:00:00”),程序就能正确运行了。