SimpleDateFormat
public static final String DATE_PARTEN = "yyyy-MM-dd HH:mm:ss";
public static final String DAY_PARTEN = "yyyy-MM-dd";
/**
* 线程安全转换 String -> Date
*/
public static Date safeParseDate(String dateStr) throws ParseException {
return getDateFormat().parse(dateStr);
}
/**
* 线程安全格式化 Date -> String
*/
public static String safeFormatDate(Date date) {
return getDateFormat().format(date);
}
/**
* 线程安全转换 String -> Date
*/
public static Date safeParseDay(String dateStr) throws ParseException {
return getDayFormat().parse(dateStr);
}
/**
* 线程安全格式化 Date -> String
*/
public static String safeFormatDay(Date date) {
return getDayFormat().format(date);
}
/**
* 借助ThreadLocal完成对每个线程第一次调用时初始化SimpleDateFormat对象
*/
private static ThreadLocal<SimpleDateFormat> threadDateLocal = new ThreadLocal<SimpleDateFormat>() {
protected synchronized SimpleDateFormat initialValue() {
return new SimpleDateFormat(DATE_PARTEN);
}
};
/**
* 获取当前线程中的安全SimpleDateFormat对象
*/
private static DateFormat getDateFormat() {
return (DateFormat) threadDateLocal.get();
}
/**
* 借助ThreadLocal完成对每个线程第一次调用时初始化SimpleDateFormat对象
*/
private static ThreadLocal<SimpleDateFormat> threadDayLocal = new ThreadLocal<SimpleDateFormat>() {
protected synchronized SimpleDateFormat initialValue() {
return new SimpleDateFormat(DAY_PARTEN);
}
};
/**
* 获取当前线程中的安全SimpleDateFormat对象
*/
private static DateFormat getDayFormat() {
return (DateFormat) threadDayLocal.get();
}