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:
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.
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.
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!