问题描述
在将字符串转为java.util.Date
对象的时候,使用了java.text.SimpleDateFormat
的parse()
方法。但是我发现parse()
在解析日期字符串的时候需要一些规范。这些小的地方很容易被忽略
这些小的规范不注意,即使你抛出了异常,程序仍不会顺利执行,出现错误提示java.text.ParseException: Unparseable date:
问题展示
@Test
public void Exer() throws ParseException {
//1.实例化SimpleDateFormat对象
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
// String str = ;
Date date = format.parse("2020.09.08");
System.out.println(date);
}
看上去没问题的代码,执行时却出现错误提示java.text.ParseException: Unparseable date: "2020.09.08"
原因
构造器 SimpleDateFormat("yyyy-MM-dd") 中日期中的符号和下方传入的字符串中的符号不完全相同,下方传入的是yyyy.MM.dd
这里构造器中格式和传入的字符串日期格式应完全相同
所以虽然看上去没问题,却忽略了小问题。更改为正确对应格式后解决问题。
附件
JavaAPI中SimpleDateFormat的对应格式: