将Date转换为LocalDatetime
方法一:
从日期获取ZonedDateTime并使用其方法toLocalDateTime()获取LocalDateTime
使用LocalDateTime的Instant()工厂方法
Date date = new Date();
Instant instant = date.toInstant();
ZoneId zoneId = ZoneId.systemDefault();
LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
System.out.println("Date = " + date);
System.out.println("LocalDateTime = " + localDateTime);
方法二:
使用LocalDateTime的FactoryInput()方法使用系统的默认时区
LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), zoneId);
LocalDateTime转换为Date
使用atZone()方法将LocalDateTime转换为ZonedDateTime
将ZonedDateTime转换为Instant,并从中获取Date
ZoneId zoneId = ZoneId.systemDefault();
LocalDateTime localDateTime = LocalDateTime.now();
ZonedDateTime zdt = localDateTime.atZone(zoneId);
Date date = Date.from(zdt.toInstant());
System.out.println("LocalDateTime = " + localDateTime);
System.out.println("Date = " + date);