首页 > 编程语言 > 详细

Java多线程(三)SimpleDateFormat

时间:2017-09-25 10:59:25      阅读:270      评论:0      收藏:0      [点我收藏+]

多线程报错:java.lang.NumberFormatException: multiple points

SimpleDateFormat是非线程安全的,在多线程情况下会有问题,在每个线程下得各自new SimpleDateFormat()就可以了

实现有两种方法:

1.

public class DateTools {

    public static Date parse(String formatPattern,String dateString) throws ParseException{
        return new SimpleDateFormat(formatPattern).parse(dateString);
    }
    
    public static String format(String formatPattern,Date date){
        System.out.println("format");
        return new SimpleDateFormat(formatPattern).format(date);
    }
}

2. ThreadLocal 每个线程都有自己的私有数据

package threadDemo.date;

import java.text.SimpleDateFormat;

public class DateTools {

    private static ThreadLocal<SimpleDateFormat> threadLocals = new ThreadLocal<SimpleDateFormat>();

    public static SimpleDateFormat getSimpleDateFormat(String datePattern){
        SimpleDateFormat sdf = null;
        sdf = threadLocals.get();
        if(sdf ==null){
            sdf = new SimpleDateFormat(datePattern);
            threadLocals.set(sdf);
        }
        return sdf;
    }
}

 

Java多线程(三)SimpleDateFormat

原文:http://www.cnblogs.com/newlangwen/p/7590621.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!