Date与String互相转换及日期的大小比较

Date与String互相转换及日期的大小比较

private static final String PATTERN = "yyyy-MM-dd HH:mm:ss";

/**
* String转Date
*
* @param str
* @return
*/
public static Date strToDate(String str) {
if (StringUtils.isEmpty(str)) {
return null;
}

SimpleDateFormat sdf = new SimpleDateFormat(PATTERN);

try {
return sdf.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}

return null;
}

/**
* Date转String
*
* @param date
* @return
*/
public static String dateToStr(Date date) {
SimpleDateFormat sdf = new SimpleDateFormat(PATTERN);
String time = sdf.format(date);
return time;
}

/**
* 通过Date自带方法before()和after()比较时间大小
* 通过Date的compareTo()方法比较时间大小
*
* @param beginTime
* @param endTime
* @return
*/
public static void compare(String beginTime, String endTime) {
Date beginDate = strToDate(beginTime);
Date endDate = strToDate(endTime);
if (beginDate != null && endDate != null) {
System.out.println(beginDate.before(endDate));
System.out.println(beginDate.after(endDate));
System.out.println(beginDate.compareTo(endDate));
}
}

/**
* 通过String的compareTo()方法比较时间大小
* 返回正值是代表左侧日期大于参数日期,反之亦然,日期格式必须一致
*
* @param beginTime
* @param endTime
* @return
*/
public static void compare2(String beginTime, String endTime) {
Integer i = beginTime.compareTo(endTime);
System.out.println(i);
}

/**
* 转成Date格式换成秒数比较秒数大小,通过getTime()方法
*
* @param beginTime
* @param endTime
* @return
*/
public static void compare3(String beginTime, String endTime) {
Date beginDate = strToDate(beginTime);
Date endDate = strToDate(endTime);
long begin;
long end;
if (beginDate != null && endDate != null) {
begin = beginDate.getTime();
end = endDate.getTime();
System.out.println(begin>end);
System.out.println(begin<end);
System.out.println(begin==end);
}
}