将 java.util.Date 转换为 java.time.LocalDate
Java 的日期和时间 API 在 JDK 8/JSR-310 中进行了大修,引入了处理日期相关操作的新范例。此转换中的一个常见任务是将现有 java.util.Date 对象转换为新的 java.time.LocalDate 格式。
简短回答
将 java.util.Date 对象转换为新的 java.time.LocalDate 格式。 util.Date 到 LocalDate,遵循这些步骤:
Date input = new Date(); LocalDate date = input.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
说明
java.util.Date 表示没有任何时区信息的瞬时时间。但是,LocalDate 表示没有时间或时区的特定日历日期。
要将 Date 转换为 LocalDate,必须首先使用 toInstant() 方法将 Date 转换为 Instant。 Instant 没有与之关联的时区。
接下来,您需要将时区应用于 Instant 以获取 ZonedDateTime 对象。您可以使用 ZoneId.systemDefault() 获取默认系统时区。
最后,您可以使用 toLocalDate() 方法从 ZonedDateTime 对象中提取 LocalDate 组件。
Java 9 答案
Java SE 9 引入了上述内容的更简单的替代方案conversion:
Date input = new Date(); LocalDate date = LocalDate.ofInstant(input.toInstant(), ZoneId.systemDefault());
此方法直接将 Date 转换为 LocalDate,不需要中间的 ZonedDateTime 对象。
以上是如何将'java.util.Date”转换为'java.time.LocalDate”?的详细内容。更多信息请关注PHP中文网其他相关文章!