LocalDate、LocalDateTime、LocalTime 、Date 转换工具类
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.Date;
/**
* @version v1.0
* @ProjectName:
* @ClassName: TimeUtils
* @Description: JAVA 时间工具
* @Date: 2021/3/10 下午2:39
*/
public class TimeUtils {
public static final String Y_D_R = "yyyy-MM-dd";
public static final String Y_D_R_H_M = "yyyy-MM-dd HH:mm";
public static final String Y_D_R_H_M_S = "yyyy-MM-dd HH:mm:ss";
public static final String YDR = "yyyyMMdd";
public static final String YDRHMS = "yyyyMMddHHmmss";
public static final String Y_D_R_0_0_0 = "yyyy-MM-dd 00:00:00";
public static final String Y_D_R_23_59_59 = "yyyy-MM-dd 23:59:59";
public static final String H_M_S = "HH:mm:ss";
public static final String HMS = "HHmmss";
/**
* 获取当前年数值
*
* @return 年 2021
*/
public static int queryCurrentYear() {
LocalDate localDate = LocalDate.now();
return localDate.getYear();
}
/**
* 当前月
*
* @return 月 12
*/
public static int queryCurrentMonth() {
LocalDate localDate = LocalDate.now();
return localDate.getMonthValue();
}
/**
* 获取当前日
*
* @return 几号 10号
*/
public static int queryCurrentDay() {
LocalDate localDate = LocalDate.now();
return localDate.getDayOfMonth();
}
/**
* 获取今天是周几
*
* @return 4
*/
public static int queryCurrentWeekDay() {
LocalDate localDate = LocalDate.now();
return localDate.getDayOfWeek().getValue();
}
/**
* 判断今天是生日
*
* @return
*/
public static Boolean todayIsBirthday(Date dateOfBirth) {
LocalDate dateOfBirthLocalDate = dateToLocalDate(dateOfBirth);
MonthDay birthday = MonthDay.of(dateOfBirthLocalDate.getMonth(), dateOfBirthLocalDate.getDayOfMonth());
MonthDay currentMonthDay = MonthDay.from(LocalDate.now());
return currentMonthDay.equals(birthday);
}
/**
* 两个时间相差几天
*
* @param date1 时间1
* @param date2 时间2
* @return
*/
public static int dateDiffDay(Date date1, Date date2) {
LocalDate l1 = dateToLocalDate(date1);
LocalDate l2 = dateToLocalDate(date2);
Period between = Period.between(l1, l2);
return between.getDays();
}
/**
* 两个时间相差月数
*
* @param date1 时间1
* @param date2 时间2
* @return
*/
public static int dateDiffMonth(Date date1, Date date2) {
LocalDate l1 = dateToLocalDate(date1);
LocalDate l2 = dateToLocalDate(date2);
Period between = Period.between(l1, l2);
return between.getMonths();
}
/**
* 两个时间相差年数
*
* @param date1 时间1
* @param date2 时间2
* @return
*/
public static int dateDiffYear(Date date1, Date date2) {
LocalDate l1 = dateToLocalDate(date1);
LocalDate l2 = dateToLocalDate(date2);
Period between = Period.between(l1, l2);
return between.getYears();
}
/**
* Date转换LocalDate
*
* @param date 时间
* @return
*/
public static LocalDate dateToLocalDate(Date date) {
return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
}
/**
* LocalDate 转换Date
*
* @param localDate 时间
* @return
*/
public static Date LocalDateToDate(LocalDate localDate) {
Instant instant = localDate.atStartOfDay(ZoneId.systemDefault()).toInstant();
return Date.from(instant);
}
/**
* 格式
*
* @param localDate 时间
* @return
*/
public static String format(LocalDate localDate, String pattern) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
return localDate.format(formatter);
}
/**
* date转换LocalDateTime
*
* @param date 时间
* @return
*/
public static LocalDateTime dateToLocalDateTime(Date date) {
return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
}
/**
* LocalDate 转换Date
*
* @param localDateTime 时间
* @return
*/
public static String format(LocalDateTime localDateTime, String pattern) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
return localDateTime.format(formatter);
}
/**
* date转换LocalDateTime
*
* @param localDateTime 时间
* @return
*/
public static Date dateToLocalDateTime(LocalDateTime localDateTime) {
Instant instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant();
return Date.from(instant);
}
/**
* date转换LocalTime
*
* @param date 时间
* @return
*/
public static LocalTime dateToLocalTime(Date date) {
return date.toInstant().atZone(ZoneId.systemDefault()).toLocalTime();
}
/**
* 格式化
*
* @param localTime 时间
* @return
*/
public static String format(LocalTime localTime, String pattern) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
return localTime.format(formatter);
}
}