Heim > Java > LocalDate.parse und ResolverStyle.STRICT für Asien/Hongkong geben unerwartete Ergebnisse zurück

LocalDate.parse und ResolverStyle.STRICT für Asien/Hongkong geben unerwartete Ergebnisse zurück

王林
Freigeben: 2024-02-13 20:54:07
nach vorne
1235 Leute haben es durchsucht

php-Editor Xiaoxin wird in diesem Artikel die Probleme mit LocalDate.parse und ResolverStyle.STRICT in Java vorstellen. Wenn Sie diese Methoden in Asien oder Hongkong anwenden, kann es zu unerwarteten Ergebnissen kommen. Wir werden dieses Problem untersuchen und Lösungen anbieten.

Frageninhalt

Meine Eingabe ist 19.12.0009, der erwartete Wert ist 19. Dezember 00:00:00 Uhr 9, aber das zurückgegebene Ergebnis ist 21. Dezember 00:23:18 Uhr 9, warum? Der Code lautet wie folgt:

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);
Nach dem Login kopieren

Lösung

In Zonenregeln gibt es ein Konvertierungskonzept, bei dem savingslocaltransitions。我发现由于某种原因(可能是历史原因), "asia/hong_kong" 本地转换中的节省从 1904-10-30t00:36:42 开始。 resolverstyle.strict hier nicht das Problem ist!

Deshalb sehen Sie 00:23:18 hkt 9.

Wenn Sie den Code ändern, zum Beispiel:

localdate localdate = localdate.parse("19.12.1904", formatter);
Nach dem Login kopieren

Erwartete Ausgabe:

resultDate Mon Dec 19 01:00:00 JST 1904
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonLocalDate.parse und ResolverStyle.STRICT für Asien/Hongkong geben unerwartete Ergebnisse zurück. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage