Java 8时区转换

Jav*_*ide 11 java timezone timezone-offset java-8

在Java 8中,我想将日期时间从UTC转换为ACST(UTC + 9:30).

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

output-> 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
Run Code Online (Sandbox Code Playgroud)

为什么没有执行偏移?

aio*_*obe 19

尝试:

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)); 
Run Code Online (Sandbox Code Playgroud)

输出:

Input:  2014-09-14T17:00Z
Output: 2014-09-15T02:30:00+09:30
Run Code Online (Sandbox Code Playgroud)