首页 >Java >java教程 >如何将'java.util.Date”转换为'java.time.LocalDate”?

如何将'java.util.Date”转换为'java.time.LocalDate”?

Linda Hamilton
Linda Hamilton原创
2024-12-08 02:49:10812浏览

How to Convert `java.util.Date` to `java.time.LocalDate`?

将 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn