项目需求,需要判断当今日期是否在数据库存储的日期30天内,有两种方案,
①直接拿两个日期的毫秒数相减,判断差是否大于30 * 24 * 60 * 60 * 1000;
②使用Calendar类,分别判断年月日的差值。
Date lastTime = ##数据库中获取时间;
//判断距今日时间是否超过30天
Calendar last = Calendar.getInstance();
Calendar now = Calendar.getInstance();
last.setTime(lastTime);
last.set(last.get(Calendar.YEAR),last.get(Calendar.MONTH),last.get(Calendar.DAY_OF_MONTH)+30,0,0,0);
//last.add(Calendar.DAY_OF_MONTH,30);
System.out.println(last.getTime());
Integer yearGap = now.get(Calendar.YEAR) - last.get(Calendar.YEAR);
if (yearGap != 0) {
return yearGap>0;
}
Integer monthGap = now.get(Calendar.MONTH) - last.get(Calendar.MONTH);
if (monthGap != 0) {
return monthGap>0;
}
Integer dayGap = now.get(Calendar.DAY_OF_MONTH) - last.get(Calendar.DAY_OF_MONTH);
return dayGap >= 0;
Calendar类日期加减使用很方便,计算多少天后可以用add方法(上边注释代码)也可以用set方法。