一.string,long和Date类型的转换

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

try {
        String d1 = "2020-9-29";
        Date d11 = sdf.parse(d1); // string ---> date
        System.out.println(sdf.format(d11)); // date ---> string

        // 毫秒数 和日期的转换
        Long d12 = d11.getTime(); // date ---> long
        System.out.println(d12);
        Date d2 = new Date(d12);   // long - date
        System.out.println(sdf.format(d2));
        
        // 当前毫秒数
        long cur = System.currentTimeMillis();
        // 当前日期
        Date now = new Date();

 }catch (Exception e){

 }

二.计算某个日期几个月后的日期

// 指定日期n个月后的日期
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
String date = "2020-10-29";
Date dt = sd.parse(date);

Calendar calendar = Calendar.getInstance();
calendar.setTime(dt);
calendar.add(Calendar.MONTH,3); // 3个月之后的日期
Date newdd = calendar.getTime();
System.out.println(sd.format(newdd));

三.日期的比较

// 日期之间比较大小
int res = d2.compareTo(newdd);
System.out.println(res);// -1:小于 0:等于 1:大于

boolean f = newdd.after(sdf.parse("2021-1-1"));
// boolean f = newdd.before(sdf.parse("2021-1-1"));
System.out.println(f);