Java 中时区转换的方法有哪些?
  qWtKkk3MNO86 2023年11月09日 29 0

1、使用 java.util.TimeZone 类进行时区转换。可以使用 TimeZone 类的静态方法获取某个时区的实例,例如 TimeZone.getTimeZone("Asia/Shanghai"),然后使用 SimpleDateFormat 进行时间格式化,将时间从一个时区转换为另一个时区。

示例代码:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

formatter.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); // 设置源时区

Date sourceDate = formatter.parse("2023-03-15 10:00:00");

formatter.setTimeZone(TimeZone.getTimeZone("America/New_York")); // 设置目标时区

String targetDate = formatter.format(sourceDate);

System.out.println(targetDate); // 输出:2023-03-14 21:00:00

2、使用 java.time 包中的类进行时区转换。Java 8 引入了新的日期和时间 API,提供了更好的时区转换支持。可以使用 ZonedDateTime 类将一个本地日期时间转换为特定时区的日期时间。

示例代码:

LocalDateTime sourceDateTime = LocalDateTime.parse("2023-03-15T10:00:00");

ZoneId sourceTimeZone = ZoneId.of("Asia/Shanghai");

ZonedDateTime sourceZonedDateTime = ZonedDateTime.of(sourceDateTime, sourceTimeZone);

ZoneId targetTimeZone = ZoneId.of("America/New_York");

ZonedDateTime targetZonedDateTime = sourceZonedDateTime.withZoneSameInstant(targetTimeZone);

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

String targetDateTime = formatter.format(targetZonedDateTime);

System.out.println(targetDateTime); // 输出:2023-03-14 21:00:00

以上两种方式都可以实现时区转换,具体使用哪种方式取决于项目的实际需求和个人喜好。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: Django 部署指南 下一篇: 正则表达式
  1. 分享:
最后一次编辑于 2023年11月09日 0

暂无评论

推荐阅读
  2Vtxr3XfwhHq   2024年05月17日   53   0   0 Java
  Tnh5bgG19sRf   2024年05月20日   107   0   0 Java
  8s1LUHPryisj   2024年05月17日   46   0   0 Java
  aRSRdgycpgWt   2024年05月17日   47   0   0 Java
qWtKkk3MNO86