校验日期是否超过多少天
1、精确到年月日yyyy-MM-dd
/**
* 校验日期是否超过多少天 true:未超过 false:超过
* @param str 日期
* @param days 天数
* @return
*/
public static boolean isValidDate(String str, int days){
boolean convertSuccess = false;
SimpleDateFormat format = new SimpleDateFormat(YYYY_MM_DD);
Calendar calc = Calendar.getInstance();
calc.add(Calendar.DAY_OF_MONTH, -days);
String minDate = format.format(calc.getTime());
try {
//设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01
format.setLenient(false);
//获取字符串转换后的时间--strDate
String strDate = format.format(format.parse(str));
if (strDate.compareTo(minDate) >= 0){
convertSuccess = true;
}
} catch (Exception e) {
e.printStackTrace();
}
return convertSuccess;
}
2、精确到年月日时分秒
/**
* 校验日期是否超过多少天,精确到秒:true:未超过 false:超过
*
* @param start
* @param end
* @return
*/
public static boolean isValidDate(Date start, Date end, int days) {
long startTime = start.getTime();
long endTime = end.getTime();
long time = days * 24 * 60 * 60 * 1000;
if(endTime - startTime <= time){
return true;
}
return false;
}
如有问题,欢迎指正~ 如能帮到您,欢迎点赞收藏~