在Java中,java.util.Date
代表了自“the epoch”(即1970年1月1日 00:00:00 GMT)以来的毫秒数。而java.time
包(Java 8及以后版本)中的LocalDate
、LocalTime
和LocalDateTime
则提供了更为丰富和直观的日期时间API。
要将java.util.Date
转换为LocalDate
、LocalTime
或LocalDateTime
,可以使用java.time.Instant
类作为中间桥梁,因为Instant
类可以表示时间线上的一个瞬时点,与java.util.Date
有相似的用途(尽管Instant
是以UTC表示的,而Date
是相对于默认时区的)。
Date 转 LocalDate
import java.util.Date;
import java.time.LocalDate;
import java.time.Instant;
import java.time.ZoneId;
public class DateToLocalDate {
public static void main(String[] args) {
Date date = new Date(); // 获取当前日期时间
// 转换为Instant
Instant instant = date.toInstant();
// 转换为LocalDate,需要指定时区&