将 java.util.Date 转换为 java.time.LocalDate
在 Java 8 及更高版本中,java.util.Date 类具有已被用于表示日期的 java.time.LocalDate 类取代。因此,有必要将 Date 对象转换为 LocalDate 对象。
转换过程
获取即时: Convert使用 toInstant() 将 Date 对象转换为 Instant
Date input = new Date(); Instant instant = input.toInstant();
指定时区:由于 Date 对象缺少时区信息,因此请选择时区。这可以是使用 ZoneId.systemDefault() 的系统默认值,也可以是自定义的。
ZoneId zone = ZoneId.systemDefault();
获取 ZonedDateTime: 将 Instant 和时区结合起来创建一个ZonedDateTime.
ZonedDateTime zdt = instant.atZone(zone);
提取 LocalDate: 使用 toLocalDate() 方法从 ZonedDateTime 中提取本地日期。
LocalDate date = zdt.toLocalDate();
Java 9 及更高版本优化
Java 9 引入了这种转换的简化方法:
LocalDate date = LocalDate.ofInstant(input.toInstant(), ZoneId.systemDefault());
说明
以上是如何将 java.util.Date 转换为 java.time.LocalDate?的详细内容。更多信息请关注PHP中文网其他相关文章!