简述

相对Date来说,LocalDate作为一个Java 8的新特性,处理时间更加的通用。

基本应用

  1. import java.time.LocalDate;
  2. import java.time.LocalDateTime;
  3. import java.time.Period;
  4. import java.time.format.DateTimeFormatter;
  5. import java.time.temporal.ChronoUnit;
  6. public class Test{
  7. public static void main(String[] args) {
  8. //初始化方式一,直接获取当前的时间
  9. LocalDate mLocalDate1 = LocalDate.now();
  10. //初始化方式二
  11. LocalDate mLocalDate2 = LocalDate.parse("2022-12-22");
  12. //初始化方式二
  13. LocalDate mLocalDate3 = LocalDate.parse("2022年12月23日",DateTimeFormatter.ofPattern("yyyy年MM月dd日"));
  14. //时间转String方式一
  15. System.out.println(mLocalDate3);//输出格式为2022-12-21
  16. //时间转String方式二
  17. System.out.println(mLocalDate3.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日")));//输出格式为2022年12月23日
  18. //时间比较
  19. System.out.println(mLocalDate1.isAfter(mLocalDate2));//时间一是否在时间二之后
  20. System.out.println(mLocalDate1.isBefore(mLocalDate2));//时间一是否在时间二之前
  21. System.out.println(mLocalDate1.isEqual(mLocalDate2));//时间一和时间二一样
  22. //时间判断
  23. System.out.println(mLocalDate1.isLeapYear());//是否为闰年
  24. System.out.println(mLocalDate1.lengthOfMonth());//当月的最后一天为几号
  25. System.out.println(mLocalDate1.lengthOfYear());//当年是最后一天(365 or 366(闰年))
  26. //时间的间隔时长
  27. Period period = mLocalDate1.until(LocalDate.parse("2018-03-28"));
  28. System.out.println(period.getDays());//间隔天数
  29. System.out.println(period.getMonths());//间隔月数
  30. long val = mLocalDate1.until(LocalDate.parse("2018-03-28"), ChronoUnit.DAYS);//获取间隔的天数
  31. System.out.println(val);
  32. //修改日期
  33. LocalDate localDate4 = mLocalDate1.withDayOfMonth(3);//复制日期并将月份改为3月
  34. System.out.println(localDate4);
  35. LocalDateTime time = localDate4.atTime(12,59);//将LocalDate转为LocalDateTime并指定时间
  36. }
  37. }