java计算两个字符串日期相差的天数
/**
* @descript:计算两个字符串日期相差的天数
* @param date1 字符串日期1
* @param date2 字符串日期2
* @param format 日期格式化方式 format="yyyy-MM-dd"
* @return
*/
public static long dayDiff(String date1, String date2,String format) {
SimpleDateFormat formater = new SimpleDateFormat(format);
long diff=0l;
try {
long d1 = formater.parse(date1).getTime();
long d2 = formater.parse(date2).getTime();
//diff=(Math.abs(d1-d2) / (1000 * 60 * 60 * 24));
diff=(d1-d2)/(1000 * 60 * 60 * 24);
} catch (ParseException e) {
e.printStackTrace();
}
return diff;
}
案例:
/**
* 默认时间格式, yyyy-MM-dd hh24:mm:ss
*/
public static String DEFAULT_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
//当前系统时间(将系统当前时间转换为字符串)
String sysTime=DateUtil.dateToString(new Date(), DateUtil.DEFAULT_TIME_PATTERN);
//促销开始时间
String marketingBegin=DateUtil.dateToString(market.getMarketingBegin(), DateUtil.DEFAULT_TIME_PATTERN);
//促销结束时间
String marketingEnd=DateUtil.dateToString(market.getMarketingEnd(), DateUtil.DEFAULT_TIME_PATTERN);
//若审核状态为1已审核
long diff1=DateUtil.dayDiff(sysTime,marketingBegin,DateUtil.DEFAULT_TIME_PATTERN);
long diff2=DateUtil.dayDiff(sysTime,marketingEnd,DateUtil.DEFAULT_TIME_PATTERN);
if(diff1<0){
//活动状态为未开始
market.setActivityStatus("1");
}else if(diff1>=0 && diff2<=0){
//活动状态为正在进行
market.setActivityStatus("2");
}else if(diff2>0){
//活动状态为已结束
market.setActivityStatus("3");
}