Rumah  >  Artikel  >  Java  >  Apakah perbezaan antara "kk:mm", "HH:mm", dan "hh:mm" dalam SimpleDateFormat Java?

Apakah perbezaan antara "kk:mm", "HH:mm", dan "hh:mm" dalam SimpleDateFormat Java?

Susan Sarandon
Susan Sarandonasal
2024-11-09 12:08:02885semak imbas

What is the difference between

Memahami nuansa kk:mm, HH:mm, dan hh:mm dalam SimpleDateFormat

Apabila menggunakan SimpleDateFormat Java untuk memanipulasi tarikh dan masa, adalah penting untuk membezakan perbezaan yang ketara antara penentu format "kk:mm," "HH:mm" dan "hh:mm". Mari kita mendalami setiap format ini:

  • "kk:mm": format 24 jam (01-24)

Format ini mewakili masa dalam format 24 jam, dengan nilai jam antara 01 hingga 24. Contohnya, 01:00 mewakili 1:00 PG, manakala 24:00 mewakili tengah malam.

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

Serupa dengan "kk:mm," "HH:mm" mewakili masa dalam format 24 jam. Walau bagaimanapun, nilai jam yang dibenarkan berjulat dari 00 hingga 23, bermakna tiada perwakilan "24:00". Sebaliknya, tengah malam diwakili sebagai 00:00.

  • "hh:mm": format 12 jam (01-12 dalam PG/PM)

Format ini menggunakan jam 12 jam dengan penunjuk AM/PM. Nilai jam berjulat dari 01 hingga 12, dengan 01 mewakili 1:00 PG dan 12 mewakili 12:00 PM.

Contoh

Untuk menggambarkan perbezaan ini, pertimbangkan perkara berikut coretan kod:

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));

Output:

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

Seperti yang anda boleh perhatikan, "kk:mm" mengembalikan masa dalam format 24 jam dengan nilai 24:00:00. "HH:mm" memformat masa dengan betul sebagai 00:00:00 kerana tiada perwakilan 24:00 dalam jam 24 jam. Walau bagaimanapun, "hh:mm" menghasilkan keputusan yang tidak dijangka pada 05:30:00. Ini kerana format "hh:mm" menentukan jam 12 jam dan memandangkan masa yang betul ialah 00:00 UTC, perwakilan 12 jam yang setara ialah 12:00 AM. Walau bagaimanapun, kod tersebut tidak menetapkan zon waktu untuk "working2", yang mengakibatkan penggunaan zon waktu sistem lalai. Dalam kes ini, zon waktu sistem mungkin tidak sejajar dengan UTC, membawa kepada hasil yang salah.

Atas ialah kandungan terperinci Apakah perbezaan antara "kk:mm", "HH:mm", dan "hh:mm" dalam SimpleDateFormat Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn