报错的原因的是因为simpleDateFormat是线程不安全的,在多线程的项目中,容易出现线程抢占的情况,在多线程情况下会有问题,在每个线程下得各自new SimpleDateFormat()就可以了
修改之前的代码
public static final SimpleDateFormat TIME_FORMAT =
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public static Date parseTime(String time) {
try {
return TIME_FORMAT.parse(time);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
//将TIME_FORMAT加锁,可以解决多线程访问不安全问题
public static final SimpleDateFormat TIME_FORMAT =
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public static Date parseTime(String time) {
try {
synchronized (TIME_FORMAT){
return TIME_FORMAT.parse(time);
}
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}