Java date和LocalDateTime转化其实难点就是在于,LocalDateTime不包括时区,而Date代表一个具体的时间瞬间,精度为毫秒。为了从LocalDateTime转换到Date,我们需要提供时区。
/*
* Date转LocalDateTime
* @author Mr.李帅帅-兴达
* @date 10:47 2023/8/28
* @return java.util.Date
**/
public static Date getDateByLocalDate(LocalDateTime localDateTime) {
ZoneId zoneId = ZoneId.systemDefault();
ZonedDateTime zdt = localDateTime.atZone(zoneId);
return Date.from(zdt.toInstant());
}
/*
* LocalDate转Date
* @author Mr.李帅帅-兴达
* @date 10:47 2023/8/28
* @return java.util.Date
**/
public static LocalDateTime getLocalDateByDate(Date date) {
Instant instant = date.toInstant();
ZoneId zoneId = ZoneId.systemDefault();
return instant.atZone(zoneId).toLocalDateTime();
}