首頁 > Java > java教程 > Java 的 SimpleDateFormat 中的「kk:mm」、「HH:mm」和「hh:mm」有什麼不同?

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

Susan Sarandon
發布: 2024-11-09 12:08:02
原創
945 人瀏覽過

What is the difference between

理解SimpleDateFormat 中kk:mm、HH:mm 和hh:mm 的細微差別

使用Java 的SimpleDateFormat 操作日期和日期時現在,辨別「kk:mm」、「HH:mm」和「hh:mm」格式說明符之間的細微差別至關重要。讓我們深入研究這些格式:

  • 「kk:mm」:24 小時格式(01-24)

此格式代表24小時格式的時間,小時值範圍為01 到24。例如,01:00 代表凌晨 1:00,24:00 代表午夜。

  • "HH :mm": 24小時格式(00-23)

與「kk:mm」類似,「HH:mm 」表示24小時格式的時間。但是,允許的小時值範圍為 00 到 23,這意味著沒有“24:00”表示。相反,午夜表示為 00:00。

  • 「hh:mm」:12 小時格式(上午/下午01-12)

此格式採用帶有AM/PM 指示器的12 小時制。小時值範圍從 01 到 12,其中 01 代表上午 1:00,12 代表下午 12:00。

示例

要說明這些差異,請考慮以下內容代碼片段:

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));
登入後複製

輸出:

24:00:00
00:00:00
05:30:00
登入後複製

如您所見,「kk:mm」以24 小時格式傳回時間,並帶有值為24:00:00。 「HH:mm」正確地將時間格式設為 00:00:00,因為 24 小時制中沒有 24:00 表示形式。但是,「hh:mm」會產生意外結果 05:30:00。這是因為「hh:mm」格式指定 12 小時制時鐘,並且由於正確時間是 00:00 UTC,因此等效的 12 小時製表示形式是 12:00 AM。但是,代碼沒有為「working2」設定時區,這會導致使用預設的系統時區。在這種情況下,系統時區可能與 UTC 不一致,導致結果不正確。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板