参考:https://blog.csdn.net/weixin_55365140/article/details/118219902
package com.lch.time;import java.time.*;import java.time.format.DateTimeFormatter;import java.time.temporal.TemporalAccessor;import java.time.temporal.TemporalAdjusters;import java.util.Date;/*** 时间转换*/public class TimeConvert {public static void main(String[] args) {//获取指定时间(年月日)LocalDate appointTime = LocalDate.of(2022, 1, 1);//获取现在的时间(年月日)LocalDate nowTime = LocalDate.now();//获取某日期是当周星期几(枚举类型)DayOfWeek dayOfWeek = nowTime.getDayOfWeek();//获取某日期是当年的第几天int dayOfYear = nowTime.getDayOfYear();//获取某日期是当月的几号int dayOfMonth = nowTime.getDayOfMonth();//获取年int year = nowTime.getYear();//获取月份对象(枚举) 如 :四月APRILMonth month = nowTime.getMonth();//获取月的值int monthValue = nowTime.getMonthValue();//加N天LocalDate localDate = nowTime.plusDays(1);//加N星期LocalDate localDate1 = nowTime.plusWeeks(1);//加N月LocalDate localDate2 = nowTime.plusMonths(1);//加N年LocalDate localDate3 = nowTime.plusYears(1);//减n天LocalDate localDate4 = nowTime.minusDays(1);//减n周LocalDate localDate5 = nowTime.minusWeeks(1);//减n月LocalDate localDate6 = nowTime.minusMonths(1);//减n年LocalDate localDate7 = nowTime.minusYears(1);//获取两个日期之间的间隔Period period = Period.between(LocalDate.of(2021, 6, 24), LocalDate.of(2021, 5, 24));//获取两个日期相差的天数int days = period.getDays();//获取两个日期相差的月int months = period.getMonths();//获取两个日期相差的年int years = period.getYears();
Date 与 LocalDate 转换
/*** Date 转成 LocalDate*/LocalDate localDate = new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();/*** LocalDate 转成 Date*/Date date2 = Date.from(LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toInstant());
Date 与 LocalTime 转换
/*** Date 转成 LocalTime*/LocalTime localTime = new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalTime();/*** LocalTime 转成 Date*/Date date1 = Date.from(LocalDateTime.of(LocalDate.now(), LocalTime.now()).atZone(ZoneId.systemDefault()).toInstant());}}
