将UTC偏移日期转换为不同的时区

时间:2021-07-14 14:45:20

标签: java timezone-offset

我想将日期及其 UTC 偏移量转换为不同的时区。

假设我得到 2021-06-14 06:56:00(这是本地日期时间),UTC 偏移量为 +3 小时,我需要将此本地日期时间转换为 LosAngeles 时区(UTC -8 小时) .为了实现这一点,我编写了以下代码段:

    public static LocalDateTime toPstTimeZone(LocalDateTime localDateTime, int utcOffset) {
        final var pstUtcOffset = ZoneOffset.ofHours(-8);
        return localDateTime
                .atOffset(ZoneOffset.ofHours(utcOffset))
                .withOffsetSameInstant(pstUtcOffset)
                .toLocalDateTime();
    }

需要检查这是否是有效的方法。

1 个答案:

答案 0 :(得分:2)

你的方法是正确的。但是,如果可能的话,我建议从 ZonedDateTime 或 OffsetDateTime 开始工作。在这种情况下,时区之间的切换要容易得多。对于 ZonedDateTime 切换到不同时区只是一种方法:public ZonedDateTime withZoneSameInstant(ZoneId zone)

相关问题