Rumah >Java >javaTutorial >Bagaimana untuk Menukar Cap Masa Milisaat kepada Rentetan Masa Boleh Dibaca Manusia di Jawa?

Bagaimana untuk Menukar Cap Masa Milisaat kepada Rentetan Masa Boleh Dibaca Manusia di Jawa?

Patricia Arquette
Patricia Arquetteasal
2024-11-11 22:59:02376semak imbas

How to Convert Millisecond Timestamps to Human-Readable Time Strings in Java?

Menukar Cap Masa Milisaat kepada Rentetan Masa Boleh Dibaca Manusia dalam Java

Apabila bekerja dengan data cap masa, keperluan sering timbul untuk menukar integer panjang yang mewakili bilangan milisaat sejak the Epoch (1 Januari 1970) ke dalam format yang lebih mudah dibaca dan bermaklumat, seperti "h:m:s:ms" (jam:minit:saat:milisaat).

Dalam konteks log4j, mendapatkan semula cap masa daripada peristiwa pengelogan boleh dicapai melalui medan logEvent.timeStamp. Walau bagaimanapun, menukar cap masa ini kepada masa yang diformatkan boleh mencabar.

Pendekatan yang Salah:

Percubaan untuk menukar milisaat secara langsung menggunakan operasi seperti membahagi dengan bilangan saat dalam sejam atau menggunakan kaedah TimeUnit.MILLISECONDS.toMinutes() akan menghasilkan keputusan yang salah, kerana proses penukaran melibatkan lebih daripada aritmetik mudah.

Penyelesaian Betul:

Kepada menukar cap masa milisaat kepada rentetan masa yang diformat dengan tepat, kami boleh menggunakan keupayaan pemformatan tarikh dan masa terbina dalam Java:

Date date = new Date(logEvent.timeStamp);
DateFormat formatter = new SimpleDateFormat("HH:mm:ss.SSS");
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
String dateFormatted = formatter.format(date);

Contoh ini menunjukkan proses penukaran:

  • baharu Date() mencipta objek Date daripada nilai milisaat.
  • SimpleDateFormat mencipta pemformat dengan corak tarikh tertentu ("HH:mm:ss.SSS" untuk jam, minit, saat dan milisaat).
  • Zon waktu pemformat ditetapkan kepada UTC (Waktu Sejagat Selaras) untuk memastikan pemformatan yang konsisten.
  • formatter.format(tarikh) mengembalikan masa yang diformatkan sebagai rentetan.

Pilihan Pemformatan Lain:

API Java menyediakan pelbagai corak tarikh SimpleDateFormat untuk menyokong gaya pemformatan yang berbeza. Berikut ialah beberapa pilihan biasa:

Pattern Output
"h:m:s:ms" 03:34:56:123
"EEE, MMM d, yyyy hh:mm:ss a" Wed, Mar 17, 2023 03:34:56 PM
"yyyy-MM-dd HH:mm:ss.SSS" 2023-03-17 15:34:56.123

Atas ialah kandungan terperinci Bagaimana untuk Menukar Cap Masa Milisaat kepada Rentetan Masa Boleh Dibaca Manusia di Jawa?. 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