如何使用默认时区偏移量将Java ZonedDateTime转换为OffsetDateTime?

时间:2018-10-30 19:35:49

标签: java java.time

说我有一个2018-10-30T18:04:58.874Z的ZonedDateTime: 如何将其转换为OffsetDateTime 2018-10-30T13:04:58.874-05:00

我希望将偏移量设置为默认/系统偏移量,例如从OffsetDateTime.now()中提取。

2 个答案:

答案 0 :(得分:0)

ZonedDateTime中,您需要指定要在OffsetDateTime中使用的其他区域,精确定义区域,然后使用.toOffsetDateTime()

ZonedDateTime z = ZonedDateTime.parse("2018-10-30T18:04:58.874Z");
System.out.println(z); //2018-10-30T18:04:58.874Z

OffsetDateTime o = z.withZoneSameInstant(ZoneId.of("UTC-5")).toOffsetDateTime();
System.out.println(o); //2018-10-30T13:04:58.874-05:00

答案 1 :(得分:0)

这会将时区从当前/现在更改:

someOffsetDateTime.withOffsetSameInstant(OffsetDateTime.now().getOffset())