Java 获取当前日期前一天的日期(指定格式字符串)

1. 方法1: 如果是 java8, 可以使用 LocalDate 获取

// 获取当前日期前一天的日期
        LocalDate localDate = LocalDate.now().minusDays(1);
        // 获取时间字符串如: 2021-03-01
        System.out.println(localDate.toString());
        // 获取当前年如 2021
        System.out.println(localDate.getYear());
        // 获取当前月如 3
        System.out.println(localDate.getMonthValue());
        // 获取当前天如 1
        System.out.println(localDate.getDayOfMonth());

LocalDate转化为指定格式的字符串

方法1

LocalDate localDate = LocalDate.parse("2019-05-08");
String date = localDate.format(DateTimeFormatter.ofPattern("MMM dd, yyyy"));
System.out.println(date); //May 08, 2019

方法2

LocalDate localDate = LocalDate.parse("2019-05-08");
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MMM dd, yyyy");
String date = dtf.format(localDate);
System.out.println(date); //May 08, 2019

2. 方法2: 使用 Calendar 类

//获取当前日期
        Date date = new Date();
        //将时间格式化成yyyy-MM-dd HH:mm:ss的格式
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //创建Calendar实例
        Calendar cal = Calendar.getInstance();
        //设置当前时间
        cal.setTime(date);
        //在当前时间基础上减一年
        cal.add(Calendar.YEAR, -1);  
        System.out.println(format.format(cal.getTime()));
        //在当前时间基础上减一月
        cal.add(Calendar.MONTH,-1);
        System.out.println(format.format(cal.getTime()));
        //同理增加一天的方法:
        cal.add(Calendar.DATE, 1);
        System.out.println(format.format(cal.getTime()));
参考:
经验分享 程序员 微信小程序 职场和发展