package com.whyc.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class ThreadLocalUtil { public static String TIME_YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; public static String TIME_YYYY_MM_DD = "yyyy-MM-dd"; public static String TIME_YYYY_MM = "yyyy-MM"; public static String TIME_YYYY_MM_DD_HH_MM_SS_UNION = "yyyyMMddHHmmss"; public static String TIME_YYYY_MM_DD_HH_MM_SS_UNION2 = "yyyy-MM-dd_HH_mm_ss"; public static ThreadLocal sdf = ThreadLocal.withInitial(() -> new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); public static ThreadLocal sdfwithOutday = ThreadLocal.withInitial(() -> new SimpleDateFormat("yyyy_MM")); public static ThreadLocal sdfwithday = ThreadLocal.withInitial(() -> new SimpleDateFormat("yyyy-MM-dd")); public static ThreadLocal sdfwithtime = ThreadLocal.withInitial(() -> new SimpleDateFormat("HH:mm:ss")); public static ThreadLocal sdfwithTABLE=ThreadLocal.withInitial(() -> new SimpleDateFormat("yyyy-MM")); public static ThreadLocal sdfwithtime_yyyyMMdd_HH_mm_ss=ThreadLocal.withInitial(() -> new SimpleDateFormat("yyyy-MM-dd_HH_mm_ss")); public static ThreadLocal YYYY_MM_DD_HH_MM_SS_UNION=ThreadLocal.withInitial(() -> new SimpleDateFormat("yyyyMMddHHmmss")); /* * flag:1(sdf),2(sdfwithOutday),3(sdfwithday),4(sdfwithtime) * */ public static Date parse(String timeStr,int flag) { Date date=null; try { switch (flag){ case 1:date=sdf.get().parse(timeStr);break; case 2:date=sdfwithOutday.get().parse(timeStr);break; case 3:date=sdfwithday.get().parse(timeStr);break; case 4:date=sdfwithtime.get().parse(timeStr);break; default:date=sdf.get().parse(timeStr); } } catch (ParseException e) { e.printStackTrace(); } return date; } public static String format(Date date,int flag) { String timeStr=""; switch (flag){ case 1:timeStr=sdf.get().format(date);break; case 2:timeStr=sdfwithOutday.get().format(date);break; case 3:timeStr=sdfwithday.get().format(date);break; case 4:timeStr=sdfwithtime.get().format(date);break; case 5:timeStr=sdfwithTABLE.get().format(date);break; case 6:timeStr=sdfwithtime_yyyyMMdd_HH_mm_ss.get().format(date);break; case 7:timeStr=YYYY_MM_DD_HH_MM_SS_UNION.get().format(date);break; default:timeStr=sdf.get().format(date); } return timeStr; } public static String format(String timeFormat,Date date) { ThreadLocal formatThreadLocal = ThreadLocal.withInitial(() -> new SimpleDateFormat(timeFormat)); SimpleDateFormat format = formatThreadLocal.get(); return format.format(date); } }