参考: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();
//获取月份对象(枚举) 如 :四月APRIL
Month 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()
);
}
}