1. 程式人生 > >通用日期格式化工具類DateUtil

通用日期格式化工具類DateUtil

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類不可繼承。