Date、LocalDateTime类型数据该日期三天前或一个月前的日期
1.首先创建一个日期对象
Date createTime = new Date();
// 转换为java.time.ZonedDateTime
ZonedDateTime zonedDateTime = createTime.toInstant().atZone(ZoneId.systemDefault());
// 转换为java.time.LocalDate,计算前三天的日期
LocalDate dateBeforeDay = zonedDateTime.toLocalDate().minusDays(3);
LocalDate dateBeforeMonth = zonedDateTime.toLocalDate().minusMonths(1);
LocalDate dateBeforeWeek = zonedDateTime.toLocalDate().minusWeeks(1);
LocalDate dateBeforeYear = zonedDateTime.toLocalDate().minusYears(1);
System.out.println("当前日期 = " + zonedDateTime.toLocalDate());
//输出结果
System.out.println("三天前日期 = " + dateBeforeDay);
System.out.println("一个月前日期 = " + dateBeforeMonth);
System.out.println("一周前日期 = " + dateBeforeWeek);
System.out.println("一年前日期 = " + dateBeforeYear);
2.若日期类型为LocalDateTime,先创建对象
LocalDateTime createTime = LocalDateTime.now();
System.out.println("当前日期 = " + createTime);
LocalDateTime localDateDay = createTime.minusDays(3);
LocalDateTime localDateMonth = createTime.minusMonths(1);
LocalDateTime localDateWeek = createTime.minusWeeks(1);
LocalDateTime localDateYear = createTime.minusYears(1);
//输出结果
System.out.println("三天前日期 = " + localDateDay);
System.out.println("一个月前日期 = " + localDateMonth);
System.out.println("一周前日期 = " + localDateWeek);
System.out.println("一年前日期 = " + localDateYear);
LocalDateTime类型可以精确到时分秒毫秒,但日期和时间中间有个字母 ‘T’,我们也可以通过字符串中替换函数 ‘replace’ 给替换掉
System.out.println("当前日期 = " + createTime.toString().replace("T"," "));