参考
部分样例
import java.time.temporal.TemporalAdjusters;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import static java.lang.System.out;
/**
* 描述:java 8 处理时间样例
*/
public class LocalDateExample {
private static String PATTERN_YYYYMMDD = "yyyyMMdd";
public static void main(String[] args){
// 这里模拟的是日期参数为 yyyyMMdd形式,如果是yyyy-MM-dd的格式则无需进行任何处理
// 获取指定日期上一年的最后一天
LocalDate localdate1 = LocalDate.parse("20190829", DateTimeFormatter.ofPattern(PATTERN_YYYYMMDD)).minus(1, ChronoUnit.YEARS).with(TemporalAdjusters.lastDayOfYear());
out.println("20190829上一年的最后一天" + localdate1);
out.println("20190829上一年的最后一天" + localdate1.format(DateTimeFormatter.ofPattern(PATTERN_YYYYMMDD)));
// 获取指定年的年初
LocalDate localdate2 = LocalDate.parse("20190829", DateTimeFormatter.ofPattern(PATTERN_YYYYMMDD)).with(TemporalAdjusters.firstDayOfYear());
out.println("20190829的年初" + localdate2);
out.println("20190829的年初" + localdate2.format(DateTimeFormatter.ofPattern(PATTERN_YYYYMMDD)));
// 获取指定日期前一年的年初
LocalDate localdate3 = LocalDate.parse("20190829", DateTimeFormatter.ofPattern(PATTERN_YYYYMMDD)).minus(1, ChronoUnit.YEARS).with(TemporalAdjusters.firstDayOfYear());
out.println("20190829前一年的年初" + localdate3);
out.println("20190829前一年的年初" + localdate3.format(DateTimeFormatter.ofPattern(PATTERN_YYYYMMDD)));
// 去年的今天
LocalDate localdate4 = LocalDate.parse("20190829", DateTimeFormatter.ofPattern(PATTERN_YYYYMMDD)).minus(1, ChronoUnit.YEARS);
out.println("20190829去年的今天" + localdate4);
out.println("20190829去年的今天" + localdate4.format(DateTimeFormatter.ofPattern(PATTERN_YYYYMMDD)));
}
}