将 java.util.Date 转换为 java.time.LocalDate
JDK 8/JSR-310 中引入的 java.time 包提供了比遗留的 java.util.Date 类更现代、更全面的日期和时间 API。使用以下步骤可以有效地将 java.util.Date 对象转换为新的 java.time.LocalDate:
1.转换为即时:
java.util.Date 类表示自纪元以来以毫秒为单位的即时时间。要将 java.util.Date 对象转换为即时对象,请使用 toInstant() 方法。
Date input = new Date(); Instant instant = input.toInstant();
2.应用时区:
瞬间不包含时区信息。要将其转换为本地日期,我们需要应用时区。使用 atZone() 方法和所需的时区。
ZonedDateTime zdt = instant.atZone(ZoneId.systemDefault());
3.提取 LocalDate:
ZonedDateTime 包含日期和时间以及时区。要提取 LocalDate,请使用 toLocalDate() 方法。
LocalDate date = zdt.toLocalDate();
Java 9 简化:
Java 9 引入了一种新方法来简化此转换:
LocalDate date = LocalDate.ofInstant(input.toInstant(), ZoneId.systemDefault());
此方法使用默认时区直接将即时时间转换为 LocalDate。比之前的方法更加简洁高效。
以上是如何将 java.util.Date 转换为 java.time.LocalDate?的详细内容。更多信息请关注PHP中文网其他相关文章!