将 UTC 偏移日期转换为不同的时区
Convert UTC offset date to different time zone
我想将日期及其 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();
}
需要检查这是否是有效的方法。
你的做法是正确的。但是,如果可能的话,我建议首先使用 ZonedDateTime 或 OffsetDateTime。在这种情况下,时区之间的切换要容易得多。对于 ZonedDateTime 切换到不同的时区只是一种方法:public ZonedDateTime withZoneSameInstant(ZoneId zone)
我想将日期及其 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();
}
需要检查这是否是有效的方法。
你的做法是正确的。但是,如果可能的话,我建议首先使用 ZonedDateTime 或 OffsetDateTime。在这种情况下,时区之间的切换要容易得多。对于 ZonedDateTime 切换到不同的时区只是一种方法:public ZonedDateTime withZoneSameInstant(ZoneId zone)