行业资讯 2025年08月6日
0 收藏 0 点赞 290 浏览 1770 个字
摘要 :

文章目录 1.LocalDate如何转为ZonedDateTime 1.1 LocalDate -> ZonedDateTime 1.2 LocalDate -> LocalDateTime -> ZonedDateTime 2. ZonedDateTime如何转为L……




  • 1.LocalDate如何转为ZonedDateTime
    • 1.1 LocalDate -> ZonedDateTime
    • 1.2 LocalDate -> LocalDateTime -> ZonedDateTime
  • 2. ZonedDateTime如何转为LocalDate

在Java 8中,学习如何将LocalDate转换为ZonedDateTime,以及将ZonedDateTime转换为LocalDate。

我们知道,LocalDate表示没有时间和时区信息的日期。ZonedDateTime实例包含所有三个信息,即日期、时间和时区。

ZonedDateTime = LocalDate + 时间 + 时区

1.LocalDate如何转为ZonedDateTime

要将LocalDate实例转换为ZonedDateTime实例,有两种方法。

1.1 LocalDate -> ZonedDateTime

如果我们只想将当前时区的本地日期转换为不同时区的本地日期,即只想添加时区信息,那么我们可以使用LocalDate.atStartOfDay(zoneId)方法。

LocalDate localDate = LocalDate.now();
ZonedDateTime zonedDateTime = localDate.atStartOfDay(ZoneId.of(\"EST5EDT\"));
System.out.println(zonedDateTime);//2019-04-02T00:00-04:00[EST5EDT]

1.2 LocalDate -> LocalDateTime -> ZonedDateTime

如果我们想同时添加时间和时区信息到本地日期,那么我们需要分别添加这两部分以获得ZonedDateTime实例。我们可以使用以下方法向本地日期添加时间信息。

  • ZonedDateTime atStartOfDay()
  • ZonedDateTime atTime(LocalTime time)
  • ZonedDateTime atTime(int hour, int minutes)
  • ZonedDateTime atTime(int hour, int minutes, int seconds)
  • ZonedDateTime atTime(int hour, int minute, int second, int nanoOfSecond)

然后,我们可以使用LocalDateTime.atZone(ZoneId)方法添加时区信息。

LocalDate localDate = LocalDate.now();  //本地日期
LocalDateTime localDateTime = localDate.atTime(10, 45, 56);  //添加时间信息
ZoneId zoneId = ZoneId.of(\"Asia/Kolkata\"); // Zone information
ZonedDateTime zdtAtAsia = localDateTime.atZone(zoneId); // 添加时区信息
ZonedDateTime zdtAtET = zdtAtAsia
        .withZoneSameInstant(ZoneId.of(\"America/New_York\")); // 与欧洲东部时间同步
System.out.println(zdtAtAsia);
System.out.println(zdtAtET);

程序输出。

2019-04-02T10:45:56+05:30[Asia/Kolkata]
2019-04-02T01:15:56-04:00[America/New_York]

2. ZonedDateTime如何转为LocalDate

要将ZonedDateTime转换为LocalDate实例,请使用toLocalDate()方法。它返回与给定日期时间相同的年份、月份和日期的LocalDate。

ZonedDateTime zonedDateTime = ZonedDateTime.now();
LocalDate localDate = zonedDateTime.toLocalDate();
System.out.println(localDate);//2019-04-02

以上就是Java8如何实现LocalDate和ZonedDateTime相互转换的全部的内容。

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/9623.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号