【发布时间】:2020-05-25 01:48:08
【问题描述】:
ZonedDateTime 似乎不允许检测给定的日期是否在 DST 间隙或重叠中。文档说of 方法(创建ZonedDateTime):
在重叠的情况下,当时钟拨回时,有两个 有效的偏移量。此方法通常使用较早的偏移量 对应“夏天”。
在有间隙的情况下,当时钟向前跳时,没有有效的 抵消。相反,本地日期时间由 间隙的长度。
^ 如上所述,此方法只会返回一个值,但不会让我知道是否发生 DST 间隙或重叠。
我想知道所提供的日期是否存在间隔或重叠,并有间隔或重叠的开始日期和结束日期。
例如:
“非洲/阿克拉”时区的“1920-09-01 00:10”处于DST 差距。
差距是从“1920-09-01 00:00:00+00:00”到“1920-09-01 00:20:00+00:20”。
“1920-12-30 23:50”时区“非洲/阿克拉”处于DST 重叠。
重叠涉及以下时期:
“1920-12-30 23:40:00+00:20”到“1920-12-31 00:00:00+00:20”和
“1920-12-30 23:40:00+00:00”到“1920-12-31 00:00:00+00:00”
如果出现上述示例中的空白或重叠,我如何获得这些日期?
【问题讨论】:
标签: java dst zoneddatetime java-time