//格式化日期
public static String strToDateLong(String strDate) {
Date date = new Date();
try {
date = new SimpleDateFormat("yyyyMMddHHmmss").parse(strDate+"000000");//先按照原格式转换为时间
} catch (ParseException e) {
e.printStackTrace();
}
String str = new SimpleDateFormat("yyyy-MM-dd").format(date);//再将时间转换为对应格式字符串
return str;
}
8位的字符串,直接转会报:
java.text.ParseException: Unparseable date: "20211228"
at java.text.DateFormat.parse(DateFormat.java:366)
at click.test.MyWork.strToDateLong(MyWork.java:44)
at click.test.MyWork.main(MyWork.java:36)
因为SimpleDateFormat 只能格式化比自己精度长的时间,或者相同的时间精度,不能格式化比自己精度短的时间
所以在 strDate 后面 +"000000" 可以避坑,但如果字符串是14位就没必要了,可以去掉



