通用日期格式化工具類DateUtil
阿新 • • 發佈:2019-02-09
public class DateUtil {
//鎖物件
private static final Object lockObj = new Object();
//存放不同的日期模板格式的sdf的Map
private static Map<String,ThreadLocal<SimpleDateFormat>> sdfMap = new HashMap<String,ThreadLocal<SimpleDateFormat>>();
//預設日期格式
public static final String DATE_DEFAULT_FORMAT = "yyyy-MM-dd" ;
//全日期格式
public static final String DATE_FULL_FORMAT = "yyyy-MM-dd HH:mm:ss";
//全日期格式無秒
public static final String DATE_NO_SS_FORMAT = "yyyy-MM-dd HH:mm";
/*
*時間轉字串
*/
public static String dateToString(Date date,String pattern) {
if (pattern == null || "".equals(pattern)) {
pattern = DATE_DEFAULT_FORMAT;
}
if (date != null) {
return getSimpleDateFormat(pattern).format(date);
} else {
return null;
}
}
public static String dateToString(Date date) {
return dateToString(date,null);
}
/*
*得到格式化物件
*/
public static SimpleDateFormat getSimpleDateFormat (final String pattern) {
ThreadLocal<SimpleDateFormat> t1 = sdfMap.get(pattern);
synchronized(lockObj) {
t1 = sdfMap.get(pattern);
if (t1 == null) {
t1 = new ThreadLocal<SimpleDateFormat>() {
@Override
protected SimpleDateFormat initialValue() {
return new SimpleDateFormat(pattern);
}
};
sdfMap.put(pattern,t1);
}
return t1.get();
}
}
/*
*字串轉時間
*/
public static Date stringToDate(String date,String pattern) throws ParseException {
if (pattern == null || "".equals(pattern)) {
pattern = DATE_DEFAULT_FORMAT;
}
return getSimpleDateFormat(pattern).parse(date);
}
/*
*字串轉時間
*/
public static Date stringToDate(String date) {
Date result = null;
if (date == null) {
return null;
}
if (date.length() == DATE_DEFAULT_FORMAT.length()) {
try{
result = stringToDate(date,DATE_DEFAULT_FORMAT);
}
}
}
/*
*獲取當天日期
*/
public static String getToday(String pattern) {
return dateToString(new Timestamp(System.currentTimeMillis()),pattern);
}
}
方法的引數使用final修飾含義:
主要分為兩種情況:1.修飾基本資料型別;2.修飾引用型別。
修飾基本資料型別:
引數的值在方法體內是不能被修改的,即不能被重新賦值,否則編譯不通過。
修飾引用資料型別:
引數變數所引用的物件是不能被改變的。
作為引用的拷貝,引數在方法體裡面不能再引用新的物件,否則編譯不通過。
final變數不可修改。
final方法不可覆蓋。
final類不可繼承。