package net.zhangji.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import net.zhangji.exception.MyException;
public class DateUtil {
private static String DEFAULT_STR_FORMAT = "yyyyMMddHHmmssSSS";
private static String DEFAULT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
/**
* 日期格式化为指定格式字符串
*
* @param date
时间对象
* @param format
格式
* @return
格式化字符串
*/
public static String dateToStr(Date date, String format) {
SimpleDateFormat sdf = null;
if(null == date)
date = new Date();
if(StringUtil.isEmpty(format, false)) {
sdf = new SimpleDateFormat(DEFAULT_STR_FORMAT);
return sdf.format(date);
}
sdf = new SimpleDateFormat(format);
return sdf.format(date);
}
/**
* 时间字符串转化为时间对象
*
* @param dateStr
时间字符串
* @param format
格式
* @return
时间对象
*/
public static Date strToDate(String dateStr, String format) {
try {
if(StringUtil.isEmpty(dateStr, false)) {
if(StringUtil.isEmpty(format, false))
format = DEFAULT_DATE_FORMAT;
dateStr = dateToStr(new Date(), format);
}
if(StringUtil.isEmpty(format, false))
format = DEFAULT_DATE_FORMAT;
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.parse(dateStr);
} catch (ParseException e) {
// TODO Auto-generated catch block
new MyException("String to Date exception", "date").printStackTrace();
return new Date();
}
}
/**
*
* 判断baseDate在comDate之前、之后、同一时间
*
* @param baseDate
目标比较时间
* @param comDate
相比较时间
* @return -1:之前、0:相同、1:之后
*/
public static Integer compare(Date baseDate, Date comDate) {
Integer flag = null;
if(baseDate.getTime() > comDate.getTime()) flag = -1;
else if(baseDate.getTime() < comDate.getTime()) flag = 1;
else flag = 0;
return flag;
}
}