参考:https://blog.csdn.net/weixin_55365140/article/details/118219902

  1. package com.lch.time;
  2. import java.time.*;
  3. import java.time.format.DateTimeFormatter;
  4. import java.time.temporal.TemporalAccessor;
  5. import java.time.temporal.TemporalAdjusters;
  6. import java.util.Date;
  7. /**
  8. * 时间转换
  9. */
  10. public class TimeConvert {
  11. public static void main(String[] args) {
  12. //获取指定时间(年月日)
  13. LocalDate appointTime = LocalDate.of(2022, 1, 1);
  14. //获取现在的时间(年月日)
  15. LocalDate nowTime = LocalDate.now();
  16. //获取某日期是当周星期几(枚举类型)
  17. DayOfWeek dayOfWeek = nowTime.getDayOfWeek();
  18. //获取某日期是当年的第几天
  19. int dayOfYear = nowTime.getDayOfYear();
  20. //获取某日期是当月的几号
  21. int dayOfMonth = nowTime.getDayOfMonth();
  22. //获取年
  23. int year = nowTime.getYear();
  24. //获取月份对象(枚举) 如 :四月APRIL
  25. Month month = nowTime.getMonth();
  26. //获取月的值
  27. int monthValue = nowTime.getMonthValue();
  28. //加N天
  29. LocalDate localDate = nowTime.plusDays(1);
  30. //加N星期
  31. LocalDate localDate1 = nowTime.plusWeeks(1);
  32. //加N月
  33. LocalDate localDate2 = nowTime.plusMonths(1);
  34. //加N年
  35. LocalDate localDate3 = nowTime.plusYears(1);
  36. //减n天
  37. LocalDate localDate4 = nowTime.minusDays(1);
  38. //减n周
  39. LocalDate localDate5 = nowTime.minusWeeks(1);
  40. //减n月
  41. LocalDate localDate6 = nowTime.minusMonths(1);
  42. //减n年
  43. LocalDate localDate7 = nowTime.minusYears(1);
  44. //获取两个日期之间的间隔
  45. Period period = Period.between(LocalDate.of(2021, 6, 24), LocalDate.of(2021, 5, 24));
  46. //获取两个日期相差的天数
  47. int days = period.getDays();
  48. //获取两个日期相差的月
  49. int months = period.getMonths();
  50. //获取两个日期相差的年
  51. int years = period.getYears();

Date 与 LocalDate 转换

  1. /**
  2. * Date 转成 LocalDate
  3. */
  4. LocalDate localDate = new Date()
  5. .toInstant()
  6. .atZone(ZoneId.systemDefault())
  7. .toLocalDate();
  8. /**
  9. * LocalDate 转成 Date
  10. */
  11. Date date2 = Date.from(
  12. LocalDate.now()
  13. .atStartOfDay(ZoneId.systemDefault())
  14. .toInstant()
  15. );

Date 与 LocalTime 转换

  1. /**
  2. * Date 转成 LocalTime
  3. */
  4. LocalTime localTime = new Date()
  5. .toInstant()
  6. .atZone(ZoneId.systemDefault())
  7. .toLocalTime();
  8. /**
  9. * LocalTime 转成 Date
  10. */
  11. Date date1 = Date.from(
  12. LocalDateTime.of(LocalDate.now(), LocalTime.now())
  13. .atZone(ZoneId.systemDefault())
  14. .toInstant()
  15. );
  16. }
  17. }