Ich muss die gesamten Stunden eines Intervalls eines bestimmten Tages durchführen. Wie finde ich die nächste ganze Stunde, wenn man die Zeit zu einer ganzen Stunde am fraglichen Tag, z. B. um 01:00 Uhr, zum Jahr 01:00? Die nächste ganze Stunde wäre normalerweise 02:00, aber aufgrund der Sommerzeit (DST) und anderer Anomalien könnte es um 01:00 oder 03:00 oder sogar andere Stunden sein. Instant .
Die nächste ganze Stunde kann "Mitternacht" sein, der Beginn des nächsten Tages, aber ich muss nicht weiter in den nächsten Tag gehen. Aber nicht überall bedeutet die Sommerzeit, die Uhr genau um eine Stunde anzupassen, sodass ich möglicherweise nicht wieder eine ganze Stunde fällt. Und zumindest in der vergangenen Zeitzone sind Änderungen aufgetreten, die die Uhren nach lustigen Mengen nach vorne oder rückwärts gedreht haben, z. B. +0: 09: 40 (dänische Zeit 1894). Das folgende Beispiel zeigt, dass dies auch nicht immer die richtige Zeit angibt. < /P>
ZoneId zoneId = ZoneId.of("Australia/Lord_Howe");
ZonedDateTime zdt = ZonedDateTime.of(2026, 4, 5,
1, 0, 0, 0, zoneId);
System.out.println(zdt);
System.out.println(zdt.plusHours(1));
System.out.println(zdt.plusHours(1).truncatedTo(ChronoUnit.HOURS));
< /code>
Ausgabe: < /p>
2026-04-05T01:00+11:00[Australia/Lord_Howe]
2026-04-05T01:30+10:30[Australia/Lord_Howe]
2026-04-05T01:00+11:00[Australia/Lord_Howe]
< /code>
Lord Howe Island hat einen Sommerzeitversatz von 30 Minuten. Wenn der Sommer endet und sich die Zeit um 02:00 Uhr nähert, wird es auf 01:30 angepasst. Abschneiden bringt uns zurück zum 01:00, wo wir angefangen haben. Ich kann die Operation wiederholen, aber ich werde immer wieder dort zurückkehren, wo ich angefangen habe.>
Wie kann man die nächste ganze Stunde finden? ⇐ Java
-
- Similar Topics
- Replies
- Views
- Last post