Java 8 시간 API에서 가을 (중부 유럽 표준시)의 DST 시간 변경 중 시간 중첩 부분에 속하는 LocalDateTime을 만들 수 있습니다.Java 8 시간 API가 DST 변경 기간의 오프셋을 선택하는 방법
ZoneId를 사용하여 정확한 시간을 나타내는 ZonedDateTime으로 변환 할 수 있습니다.
이렇게하면이 모호성이 실제로 해결되지는 않습니다.이 LocalDateTime과이 영역 (그러나 서로 다른 오프셋)에 해당하는 두 순간이있을 수 있습니다.
API가 서머 오프셋을 선택하는 데 시간과 방법 (이유는 언제든지 환영합니다)을 사용하는 이유는 무엇입니까?
@Test
public void TimeSetOnDST() throws Exception {
LocalDateTime time = LocalDateTime.of(2016, 10, 30, 2, 30); // in the DST time overlap
ZonedDateTime of = ZonedDateTime.of(time, ZoneId.of("Europe/Zurich"));
System.out.println(of); // 2016-10-30T02:30+02:00[Europe/Zurich]
// But why not 2016-10-30T02:30+01:00[Europe/Zurich] ?
// Is this just "by convention"?
}
감사합니다. 나는 관례에 따른 것 같다. – Philipp
규칙을 변경하려면 ['withLaterOffsetAtOverlap()'] (http://docs.oracle.com/javase/8/docs/api/java/time/ZonedDateTime.html#withLaterOffsetAtOverlap--)을 사용하십시오. (대부분의 유스 케이스의 경우 예외 또는 추가 매개 변수보다 낫기 때문에 대회가 선택되었습니다.) – JodaStephen
나는이 대회를 현명하게 선택했다고 생각합니다. 'LocalDateTime' 의사는 "벽시계"라고 말하고 DST 시프트 후 아침에 일어날 때 우리 모두가 추측하는 컨벤션을 따른다. –