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()));
参考: