今天使用多线程解析excel,并持久化。
发现会经常(时常,有时候有有时候没有)出现java.lang.NumberFormatException: multiple points 和j ava.lang.NumberFormatException: For input string: "";
报错的地方是项目用SimpleDateFormat写了个DateUtil工具类,用来时间转换的,代码如下:
- public final class DateUtil {
- private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
- public static Date parseDateTime(String dateTimeStr) {
- try {
- return dateFormat.parse(dateTimeStr);
- } catch (ParseException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return null;
- }
- }
其中
今天实在是忍受了,百度了下,原来是SimpleDateFormat是非线程安全的,在多线程情况下会有问题,在每个线程下得各自new SimpleDateFormat()就可以了