首頁  >  文章  >  Java  >  Java 的 SimpleDateFormat 中的 kk:mm、HH:mm 和 hh:mm 有什麼不同?

Java 的 SimpleDateFormat 中的 kk:mm、HH:mm 和 hh:mm 有什麼不同?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-09 18:45:02252瀏覽

What are the differences between kk:mm, HH:mm, and hh:mm in Java's SimpleDateFormat?

簡化時間格式:了解SimpleDateFormat 中的kk:mm、HH:mm 和hh:mm

在本次程式設計中,我們探索Java 的SimpleDateFormat 類別中三種常用時間格式之間的微妙差異:kk:mm、HH:mm和hh:mm.

格式變化:

  • kk:mm: 24 小時格式,時間範圍從 01 到 24。
  • HH:mm: 24 小時格式,時間範圍從 00 到 23。
  • hh:mm: 12 小時格式,時間範圍從 01 到 12,搭配 AM/PM 指示器。

直覺與實作:

為了示範這些差異,讓我們考慮以下程式碼片段:

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"));
working2.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));

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

結果與分析:

輸出:

24:00:00
00:00:00
05:30:00
  • kk:mm:顯示 24:00:00,表示午夜為 00:00。
  • HH:mm: 顯示00:00:00,正確地將午夜表示為 00:00。
  • hh:mm: 意外地顯示05:30:00,儘管指定了UTC 時區(這應該導致午夜) .

出現此異常的原因是未明確為working2 設定時區。預設情況下,SimpleDateFormat 採用本機時區,這可能與預期的 UTC 格式不一致。

結論:

了解 kk:mm, HH 的細微差別: SimpleDateFormat 中的 mm 和 hh:mm 格式對於準確的時間格式至關重要。透過仔細選擇適當的格式並確保正確配置時區,開發人員可以按照自己想要的方式有效地表示時間。

以上是Java 的 SimpleDateFormat 中的 kk:mm、HH:mm 和 hh:mm 有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn