使用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文档使用。


猜你喜欢

转载自tanweneye.iteye.com/blog/2076580