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

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

Patricia Arquette
发布: 2024-12-09 00:53:09
原创
365 人浏览过

How Do I Convert a java.util.Date to a java.time.LocalDate?

将 java.util.Date 转换为 java.time.LocalDate

在 Java 8 及更高版本中,java.util.Date 类具有已被用于表示日期的 java.time.LocalDate 类取代。因此,有必要将 Date 对象转换为 LocalDate 对象。

转换过程

  1. 获取即时: Convert使用 toInstant() 将 Date 对象转换为 Instant

    Date input = new Date();
    Instant instant = input.toInstant();
    登录后复制
  2. 指定时区:由于 Date 对象缺少时区信息,因此请选择时区。这可以是使用 ZoneId.systemDefault() 的系统默认值,也可以是自定义的。

    ZoneId zone = ZoneId.systemDefault();
    登录后复制
  3. 获取 ZonedDateTime: 将 Instant 和时区结合起来创建一个ZonedDateTime.

    ZonedDateTime zdt = instant.atZone(zone);
    登录后复制
  4. 提取 LocalDate: 使用 toLocalDate() 方法从 ZonedDateTime 中提取本地日期。

    LocalDate date = zdt.toLocalDate();
    登录后复制

Java 9 及更高版本优化

Java 9 引入了这种转换的简化方法:

LocalDate date = LocalDate.ofInstant(input.toInstant(), ZoneId.systemDefault());
登录后复制

说明

  • A java.util.日期表示时间中的一个瞬间,而不是特定的日期。
  • 瞬间缺少时区信息,因此在转换为 LocalDate 时必须指定时区。
  • ZonedDateTime 保存本地日期和时间信息,以及时区和相对于 GMT/UTC 的偏移量。

以上是如何将 java.util.Date 转换为 java.time.LocalDate?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板