在我的应用程序中,我必须经常检查给定的时间是否为 ZonedDateTime
是由于 DST 造成的额外时间。考虑从夏令时到冬令时的过渡
1) *date* 01:00:00+02:00
2) *date* 02:00:00+02:00
3) *date* 02:00:00+01:00
4) *date* 03:00:00+01:00
我想编写最简单的函数 isExtraHour(ZonedDate time)
,对于 1,2,4 将返回 false
,对于 3 情况将返回 true
当然是使用 Java8 Time API。
最佳答案
这就是我要使用的:
public boolean isExtraHour(final ZonedDateTime time) {
return time.getZone().getRules().getValidOffsets(time.toLocalDateTime()).size() > 1;
}
请注意,它在整个重叠小时内返回 true,我认为这就是您需要的答案。
关于java - 检查是否因夏令时而增加时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31285377/