【发布时间】:2017-08-29 00:15:47
【问题描述】:
Mar 12, 2017 02:39:00 "America/Chicago" 不存在。当我将日期和时间设置为此值时,它不会失败。一小时后,时间设置为Mar 12, 2017 03:39:00。如何通知我这个时间不存在。这是时间向前跳跃的方式
01:59:59
3:00:00
如您所见,02:39:00 在该日期永远不会存在。
这是我正在使用的代码
package com.company;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
public class Main {
public static void main(String[] args) {
ZoneId zoneId = ZoneId.of("America/Chicago");
ZonedDateTime dateTimeStart = ZonedDateTime.of(2017, 1, 1, 15, 39, 0, 0, ZoneId.of("America/Chicago"));
ZonedDateTime dateTimeStartUtc = dateTimeStart.withZoneSameInstant(ZoneOffset.UTC);
ZoneId zoneIdDst = ZoneId.of("America/Chicago");
ZonedDateTime dateTimeStartDst = ZonedDateTime.of(2017, 3, 12, 2, 39, 0, 0, ZoneId.of("America/Chicago"));
ZonedDateTime dateTimeStartUtcDst = dateTimeStart.withZoneSameInstant(ZoneOffset.UTC);
int y = 90;
}
}
【问题讨论】:
-
这是 ZonedDateTime 根据to the documentation 的预期行为。您将不得不使用不同的类。