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

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

王林
王林앞으로
2024-02-13 20:54:071147검색

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으로 문의하시기 바랍니다. 삭제