SimpleDateFormat线程安全问题解决方案

Posted smileblogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SimpleDateFormat线程安全问题解决方案相关的知识,希望对你有一定的参考价值。

package com.itheima.netty_chat.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class DateUtils {

    private static final Map<String, ThreadLocal<SimpleDateFormat>> allPattern 
                            = new ConcurrentHashMap<String, ThreadLocal<SimpleDateFormat>>();
    
    static {
        String[] patternArrays = new String[]{
                "yyyy-MM-dd HH:mm:ss",
                "yyyy-MM-dd HH:mm",
                "yyyy-MM-dd HH",
                "yyyy-MM-dd"
        };
        for (final String pattern : patternArrays) {
            allPattern.put(pattern, new ThreadLocal<SimpleDateFormat>(){
                @Override
                protected SimpleDateFormat initialValue() {
                    return new SimpleDateFormat(pattern);
                }
            });
        }
    }
    
    public static Date parse(String dateStr, String pattern) throws ParseException{
        return allPattern.get(pattern).get().parse(dateStr);
    }
    
    public static void main(String[] args) {
        try {
            Date d = DateUtils.parse("2019-02-11 21:36:30", "yyyy-MM-dd HH:mm:ss");
            System.out.println(d);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

 

以上是关于SimpleDateFormat线程安全问题解决方案的主要内容,如果未能解决你的问题,请参考以下文章

SimpleDateFormat线程不安全了?这里有5种解决方案

SimpleDateFormat线程安全问题和解决方案

SimpleDateFormat线程安全问题解决方案

SimpleDateFormat 线程不安全问题及解决方案

SimpleDateFormat 线程不安全问题及解决方案

SimpleDateFormat线程不安全了?这里有5种解决方案