方法一
package cn.cfm.demo.Test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* @Description: 对日期进行加减操作
* @Author:
* @Date: 2021/2/20
*/
public class DataShield {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//获取系统日期
Calendar rightNow = Calendar.getInstance();
//指定某一天,比如2021-02-16
Date shouldDate = sdf.parse("2021-02-16");
//系统日期减少或者增加几天
rightNow.add(Calendar.DATE, -9);
System.out.println(sdf.format(rightNow.getTime()));
Calendar rightNow2 = Calendar.getInstance();
rightNow2.add(Calendar.DATE, -4);
System.out.println(sdf.format(rightNow2.getTime()));
System.out.println("=========================");
System.out.println(sdf.parse(sdf.format(rightNow.getTime())).getTime());
System.out.println(shouldDate.getTime());
System.out.println(rightNow2.getTime().getTime());
//sdf.parse(sdf.format(rightNow.getTime())).getTime()指以系统日期减少几天后,获取它的日期的getTime()而不是当前时间的getTime()
if(sdf.parse(sdf.format(rightNow.getTime())).getTime() <= shouldDate.getTime()
&& shouldDate.getTime() <= rightNow2.getTime().getTime()) {
System.out.println("成功");
}else{
System.out.println("失败");
}
}
}
输出结果
注意红框中的值,这样得到的是获取它的日期的getTime()而不是当前时间的getTime()
方法二
package cn.cfm.demo.Test;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import java.util.Date;
/**
* @Description: 使用工具包hutool
* @Author:
* @Date: 2021/2/22
*/
public class DateUtilTest {
public static void main(String[] args) {
//保单下期应缴日
String dateStr = "2021-01-01";
Date date = DateUtil.parse(dateStr);
// 使用工具类获取当前时间的字符串,格式为:yyyy-MM-dd
String todayDateStr= DateUtil.today();
System.out.println(todayDateStr);
System.out.println(DateUtil.parse(todayDateStr));
Date sysdate1 = DateUtil.parse(todayDateStr);
//系统日期减59
DateTime newDate1 = DateUtil.offsetDay(sysdate1, -59);
//系统日期减51
DateTime newDate2 = DateUtil.offsetDay(sysdate1, -51);
System.out.println("-----------");
System.out.println(newDate1);
System.out.println(newDate2);
System.out.println(newDate1.getTime());
System.out.println(newDate2.getTime());
System.out.println(date.getTime());
if(newDate1.getTime() <= Long.valueOf(date.getTime())
&& Long.valueOf(date.getTime()) <= newDate2.getTime()){
System.out.println("success");
}
}
}