Heim >Java >javaLernprogramm >Was ist der Unterschied zwischen „kk:mm', „HH:mm' und „hh:mm' im SimpleDateFormat von Java?

Was ist der Unterschied zwischen „kk:mm', „HH:mm' und „hh:mm' im SimpleDateFormat von Java?

Susan Sarandon
Susan SarandonOriginal
2024-11-09 12:08:02953Durchsuche

What is the difference between

Verstehen der Nuancen von kk:mm, HH:mm und hh:mm in SimpleDateFormat

Bei Verwendung von Javas SimpleDateFormat zur Manipulation von Datum und Gleichzeitig ist es wichtig, die subtilen Unterschiede zwischen den Formatspezifizierern „kk:mm“, „HH:mm“ und „hh:mm“ zu erkennen. Schauen wir uns jedes dieser Formate genauer an:

  • "kk:mm": 24-Stunden-Format (01-24)

Dieses Format repräsentiert Uhrzeit im 24-Stunden-Format mit Stundenwerten von 01 bis 24. Beispielsweise steht 01:00 für 1:00 Uhr, während 24:00 Mitternacht darstellt.

  • "HH :mm": 24-Stunden-Format (00-23)

Ähnlich wie „kk:mm“ stellt „HH:mm“ die Zeit im 24-Stunden-Format dar. Allerdings liegen die zulässigen Stundenwerte zwischen 00 und 23, sodass es keine „24:00“-Darstellung gibt. Stattdessen wird Mitternacht als 00:00 dargestellt.

  • "hh:mm": 12-Stunden-Format (01-12 in AM/PM)

Dieses Format verwendet eine 12-Stunden-Uhr mit einer AM/PM-Anzeige. Die Stundenwerte reichen von 01 bis 12, wobei 01 für 1:00 Uhr und 12 für 12:00 Uhr steht.

Beispiel

Um diese Unterschiede zu veranschaulichen, beachten Sie Folgendes Codeausschnitt:

SimpleDateFormat broken = new SimpleDateFormat("kk:mm:ss");
SimpleDateFormat working = new SimpleDateFormat("HH:mm:ss");
SimpleDateFormat working2 = new SimpleDateFormat("hh:mm:ss");

broken.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));
working.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));

System.out.println(broken.format(epoch));
System.out.println(working.format(epoch));
System.out.println(working2.format(epoch));

Ausgabe:

24:00:00
00:00:00
05:30:00

Wie Sie sehen können, gibt „kk:mm“ die Zeit im 24-Stunden-Format mit a zurück Wert von 24:00:00. „HH:mm“ formatiert die Zeit korrekt als 00:00:00, da es in einer 24-Stunden-Uhr keine 24:00-Darstellung gibt. Allerdings führt „hh:mm“ zu einem unerwarteten Ergebnis von 05:30:00. Dies liegt daran, dass das Format „hh:mm“ eine 12-Stunden-Uhr angibt und da die korrekte Zeit 00:00 UTC ist, ist die entsprechende 12-Stunden-Darstellung 12:00 Uhr. Der Code legt jedoch nicht die Zeitzone für „working2“ fest, was dazu führt, dass die Standardzeitzone des Systems verwendet wird. In diesem Fall stimmt die Systemzeitzone möglicherweise nicht mit UTC überein, was zu einem falschen Ergebnis führt.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen „kk:mm', „HH:mm' und „hh:mm' im SimpleDateFormat von Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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