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

文章目录 1.更改ZonedDateTime的时区 2.更改OffsetDateTime的时区 3.更改java.util.Date的时区 学习将给定的日期时间对象从一个时区转换为另一个时区。我们将看到使用Z……




  • 1.更改ZonedDateTime的时区
  • 2.更改OffsetDateTime的时区
  • 3.更改java.util.Date的时区

学习将给定的日期时间对象从一个时区转换为另一个时区。我们将看到使用ZonedDateTime、Date和Calendar类的示例。

1.更改ZonedDateTime的时区

在Java 8中,带时区信息的日期和时间用ZonedDateTime表示。要将ZonedDateTime实例从一个时区转换为另一个时区,请遵循以下两个步骤:

  • 在第一个时区中创建 ZonedDateTime。您的应用程序中可能已经有了它。
  • 使用withZoneSameInstant()方法将第一个ZonedDateTime转换为第二个时区。
ZonedDateTime instant = ZonedDateTime.now();
System.out.println(instant);
ZonedDateTime instantInUTC = instant.withZoneSameInstant(ZoneId.of(\"UTC\"));
System.out.println(instantInUTC);

程序输出。

2023-10-31T14:25:09.988+08:00[Asia/Shanghai]
2023-10-31T06:25:09.988Z[UTC]

2.更改OffsetDateTime的时区

类似于ZonedDateTime,OffsetDateTime也表示通用时间线中的瞬间,在ISO-8601日历系统中与UTC/格林威治有偏移。要将OffsetDateTime实例从一个时区转换为另一个时区,请遵循以下两个步骤:

  • 在第一个时区中创建OffsetDateTime。您可能已经在您的应用程序中拥有它。
  • 使用withOffsetSameInstant()方法将第一个OffsetDateTime转换为第二时区。
OffsetDateTime now = OffsetDateTime.now();
System.out.println(now);
OffsetDateTime nowInUTC = now.withOffsetSameInstant(ZoneOffset.of( \"+00:00\" ));
System.out.println(nowInUTC);

程序输出。

2023-10-31T14:27:15.680+08:00
2023-10-31T06:27:15.680Z

3.更改java.util.Date的时区

  • java.util.Date表示没有时区信息的时间点。
  • 它仅表示自纪元以来的总时间(以毫秒为单位)。
  • 理解这一点非常重要,默认情况下,如果我们打印 Date 对象,它将始终打印日期和时间信息以及系统的当前时区。其实这样的输出存在一定的误导性,因为它似乎暗示 Date 对象可以包含时区信息,其实不是的。

处理不同时区的Date实例的正确方法是使用SimpleDateFormat类打印其他时区的日期信息。通过调整Date对象的毫秒区域偏移来调整时间线中的即时时间不是一个好的解决方案。

SimpleDateFormat FORMATTER = new SimpleDateFormat(\"MM/dd/yyyy \'at\' hh:mma z\");
//默认时区
Date currentDate = new Date();
//当前时区日期
System.out.println(FORMATTER.format(currentDate));
// UTC 时区
TimeZone utcTimeZone = TimeZone.getTimeZone(\"UTC\");
FORMATTER.setTimeZone(utcTimeZone);
String sDateInUTC = FORMATTER.format(currentDate);
System.out.println(sDateInUTC);

程序输出:

10/31/2023 at 02:29下午 CST
10/31/2023 at 06:29上午 UTC

以上就是Java如何修改日期时间对象的时区的全部内容及其演示示例。

微信扫一扫

支付宝扫一扫

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

管理员

相关推荐
2025-08-06

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

986
2025-08-06

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

463
2025-08-06

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

347
2025-08-06

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

455
2025-08-06

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

515
2025-08-06

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

831
发表评论
暂无评论

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

助力内容变现

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

点击联系客服

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

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号