加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java 8时区转换

发布时间:2020-12-14 06:00:13 所属栏目:Java 来源:网络整理
导读:在 Java 8中,我想将datetime从UTC转换为ACST(UTC 9:30). 输入 – 2014-09-14T17:00:00 00:00 输出 – 2014-09-15 02:30:00 String isoDateTime = "2014-09-14T17:00:00+00:00";LocalDateTime fromIsoDate = LocalDateTime.parse(isoDateTime,DateTimeForma
在 Java 8中,我想将datetime从UTC转换为ACST(UTC 9:30).

输入 – > 2014-09-14T17:00:00 00:00

输出 – > 2014-09-15 02:30:00

String isoDateTime = "2014-09-14T17:00:00+00:00";
LocalDateTime fromIsoDate = LocalDateTime.parse(isoDateTime,DateTimeFormatter.ISO_OFFSET_DATE_TIME);

ZoneOffset offset = ZoneOffset.of("+09:30");
OffsetDateTime acst = OffsetDateTime.of(fromIsoDate,offset);
System.out.println(acst.toString()); // 2014-09-14T17:00+09:30
System.out.println(acst.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME)); // 2014-09-14T17:00:00+09:30

为什么不执行偏移?

解决方法

尝试:
String isoDateTime = "2014-09-14T17:00:00+00:00";
ZonedDateTime fromIsoDate = ZonedDateTime.parse(isoDateTime);
ZoneOffset offset = ZoneOffset.of("+09:30");
ZonedDateTime acst = fromIsoDate.withZoneSameInstant(offset);

System.out.println("Input:  " + fromIsoDate);
System.out.println("Output: " + acst.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME));

输出:

Input:  2014-09-14T17:00Z
Output: 2014-09-15T02:30:00+09:30

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读