码迷,mamicode.com
首页 > 编程语言 > 详细

Java多线程(三)SimpleDateFormat

时间:2017-09-25 11:41:49      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:parse   ==   gets   port   pack   package   问题   tools   col   

多线程报错: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

标签:parse   ==   gets   port   pack   package   问题   tools   col   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!