使用DateUtils和DateFormatUtils处理时间日期转换
在Apache Commons项目的Lang里面,有两个类:DateUtils和DateFormatUtils,专门用于处理时间日期转换。它们在
org.apache.commons.lang.time包下。
1. 与SUN的SimpleDateFormat相比,其主要优点是:线程安全。
2. 对应于SimpleDateFormat的format()的方法,是DateFormatUtils 的format系列方法,常用的就是:
public static java.lang.String format (java.util.Date date, java.lang.String pattern)
方法调用:
public static String timestamp2string(Timestamp time, String pattern) {
Date d = new Date(time.getTime());
if (pattern == null) {
pattern = "yyyy-MM-dd HH:mm:ss";
}
return DateFormatUtils.format(d, pattern);
}
3. 对应与SimpleDateFormat的parse()的方法,是DateUtils的parseDate方法,即:
public static java.util.Date parseDate (java.lang.String str, java.lang.String[] parsePatterns) throws java.text.ParseException
方法调用:
public static Date parseDateFormat() {
SimpleDateFormat fo = new SimpleDateFormat();
Date date = new java.util.Date(System.currentTimeMillis());
fo.applyPattern("yyyy-MM-dd");
try {
date = fo.parse(DateFormatUtils.format(date, "yyyy-MM-dd"));
} catch (Exception e) {
}
return date;
}
该方法会将日期字符串按照第二参数中的String数组,依次比对,选择合适的Pattern来解析。
4. 日期舍入与截整,DateUtils的truncate()方法可以将日期按照任意范围截整,关键看第二个参数。
public static java.util.Date truncate (java.util.Date date, int field)
第二个参数取自Calendar的常量,可以是MONTH、DATE、HOUR等多种;
5. 判断是否是同一天,DateUtils的isSameDay()方法
public static boolean isSameDay (java.util.Date date1, java.util.Date date2)
6. DateFormatUtils定义了很多内置的固定日期格式,均为FastDateFormat类型,比如 ISO_DATE_FORMAT。使用 FastDateFormat的format()方法可以直接将日期格式化为内置的固定格式。
public java.lang.String format (java.util.Date date)
7. 以上提到的方法具有多态形式,可以仔细参照API文档使用。