1 package com.tanlu.user.util;
 2 
 3 import java.text.DateFormat;
 4 import java.text.ParseException;
 5 import java.text.SimpleDateFormat;
 6 import java.util.Date;
 7 
 8 /**
 9  * 考虑到SimpleDateFormat为线程不安全对象,故应用ThreadLocal来解决,
10  * 使SimpleDateFormat从独享变量变成单个线程变量
11  */
12 public class ThreadLocalDateUtil {
13 
14     //写法1:
15     /*private static ThreadLocal<DateFormat> threadLocal = new ThreadLocal<DateFormat>() {
16         @Override
17         protected DateFormat initialValue() {
18             return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
19         }
20     };
21 
22     public static Date parse(String dateStr) throws ParseException {
23         return threadLocal.get().parse(dateStr);
24     }
25 
26     public static String format(Date date) {
27         return threadLocal.get().format(date);
28     }*/
29 
30 
31     //写法2:
32     private static final String date_format = "yyyy-MM-dd HH:mm:ss";
33     private static ThreadLocal<DateFormat> threadLocal = new ThreadLocal<DateFormat>();
34 
35     public static DateFormat getDateFormat() {
36         DateFormat df = threadLocal.get();
37         if(df == null){
38             df = new SimpleDateFormat(date_format);
39             threadLocal.set(df);
40         }
41         return df;
42     }
43 
44     public static String formatDate(Date date) throws ParseException {
45         return getDateFormat().format(date);
46     }
47 
48     public static Date parse(String strDate) throws ParseException {
49         return getDateFormat().parse(strDate);
50     }
51 
52 
53 }

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。