我们使用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”),程序就能正确运行了。