> Java > 본문

아시아/홍콩의 경우 LocalDate.parse 및 ResolverStyle.STRICT가 예기치 않은 결과를 반환합니다.

王林
풀어 주다: 2024-02-13 20:54:07
앞으로
1196명이 탐색했습니다.

php 편집기 Xiaoxin은 이 기사에서 Java의 LocalDate.parse 및 ResolverStyle.STRICT에 대한 문제를 소개합니다. 아시아나 홍콩에서 이러한 방법을 사용하면 예상치 못한 결과가 나타날 수 있습니다. 우리는 이 문제를 탐구하고 해결책을 제시할 것입니다.

질문 내용

내 입력은 19.12.0009이고 예상 값은 dec 19 00:00:00 hkt 9이지만 반환된 결과는 dec 21 00:23:18 hkt 9입니다. 이유는 무엇입니까? 코드는 다음과 같습니다:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.uuuu")
                        .withResolverStyle(ResolverStyle.STRICT);
LocalDate localDate = LocalDate.parse("19.12.0009", formatter);
Instant instant = Instant.from(localDate.atStartOfDay(ZoneId.of("Asia/Hong_Kong")));
Date resultDate = Date.from(instant);
System.out.println("resultDate" + resultDate);
로그인 후 복사

Solution

zonerules에는 여기서 문제가 아닌 savingslocaltransitions。我发现由于某种原因(可能是历史原因), "asia/hong_kong" 本地转换中的节省从 1904-10-30t00:36:42 开始。 resolverstyle.strict을 사용한 변환 개념이 있습니다!

그래서 보셨군요00:23:18 hkt 9.

코드를 변경하는 경우 예:

으아아아

예상 출력:

으아아아

위 내용은 아시아/홍콩의 경우 LocalDate.parse 및 ResolverStyle.STRICT가 예기치 않은 결과를 반환합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿