解决SimpleDateFormat线程安全问题

2022-11-09,,,

 package com.tanlu.user.util;

 import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; /**
* 考虑到SimpleDateFormat为线程不安全对象,故应用ThreadLocal来解决
* 使SimpleDateFormat从独享变量变成单个线程变量
*/
public class ThreadLocalDateUtil { //写法1:
/*private static ThreadLocal<DateFormat> threadLocal = new ThreadLocal<DateFormat>() {
@Override
protected DateFormat initialValue() {
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
}
}; public static Date parse(String dateStr) throws ParseException {
return threadLocal.get().parse(dateStr);
} public static String format(Date date) {
return threadLocal.get().format(date);
}*/ //写法2:
private static final String date_format = "yyyy-MM-dd HH:mm:ss";
private static ThreadLocal<DateFormat> threadLocal = new ThreadLocal<DateFormat>(); public static DateFormat getDateFormat() {
DateFormat df = threadLocal.get();
if(df == null){
df = new SimpleDateFormat(date_format);
threadLocal.set(df);
}
return df;
} public static String formatDate(Date date) throws ParseException {
return getDateFormat().format(date);
} public static Date parse(String strDate) throws ParseException {
return getDateFormat().parse(strDate);
} }

解决SimpleDateFormat线程安全问题的相关教程结束。

《解决SimpleDateFormat线程安全问题.doc》

下载本文的Word格式文档,以方便收藏与打印。