计算两个时区之间偏移的最简单方法 Scala/Java

Mik*_*kov 3 java timezone scala java-time

我找不到如何在 Scala/Java 中轻松计算给定时间点的时区偏移的好答案。

鉴于:

  • 日期与时间
  • 时区 1
  • 时区 2

要求:计算时区 1 中特定日期的偏移量,需要将此日期移动到时区 2。

例子:

日期时间 = 2017-10-23 00:00:00 在America/Los_Angeles时区 1,

时区 2 = Europe/Paris

偏移量应等于 +9,它可用于将日期从时区 1 移动到时区 2。

jwv*_*wvh 6

这样做不行吗?

import java.time.{LocalDateTime, ZoneId}
import java.time.temporal.ChronoUnit

val dateOfInterest = LocalDateTime.parse("2020-02-02T12:00")

ChronoUnit.HOURS.between(dateOfInterest.atZone(ZoneId.of("Europe/Paris"))
                        ,dateOfInterest.atZone(ZoneId.of("America/Los_Angeles")))
//res0: Long = 9
Run Code Online (Sandbox Code Playgroud)

  • 或者颠倒时区的顺序。将 LA TZ 作为第一个参数,将 Paris TZ 作为第二个参数,结果为“-9”。 (2认同)