在處理帶有時間戳的資料時,經常需要轉換長整數,表示從將紀元(1970 年1 月 1日)轉換為更具可讀性和資訊量的格式,例如“h:m:s:ms”(小時:分鐘:秒:毫秒)。
在 log4j 的上下文中,可以透過 logEvent.timeStamp 欄位從日誌記錄事件中檢索時間戳記。然而,將此時間戳轉換為格式化時間可能具有挑戰性。
不正確的方法:
嘗試直接使用除以秒數等操作來轉換毫秒一個小時或使用 TimeUnit.MILLISECONDS.toMinutes()方法將產生不正確的結果,因為轉換過程涉及的不僅僅是簡單的
正確解決方案:
要準確地將毫秒時間戳轉換為格式化時間字串,我們可以利用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);
此範例示範了轉換過程:
其他格式選項:
Java API SimpleDateFormat 提供了多種日期模式來支援不同的格式化樣式。以下是一些常見選項:
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 |
以上是如何在 Java 中將毫秒時間戳轉換為人類可讀的時間字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!