時間在計算機世界中非常重要,但是以計算機內部的時間格式顯示給人看並不太友好。在Java中,我們可以使用毫秒時間戳來表示日期和時間,但是毫秒時間戳並不能直接讓人方便地了解當地的時間,因為它只表示與 1970 年 1 月 1 日 00:00:00 之間的間隔時間。本文將介紹如何將 Java 中的毫秒時間戳轉換為可讀的日期格式。
一、Date類
Java自帶的Date類是表示時間和日期的類,它的構造方法可以將毫秒時間戳轉換為日期對象。同時,Date類也有toString()方法可以將日期轉換為可讀的字元串格式。
long millisecond = System.currentTimeMillis();
Date date = new Date(millisecond);
System.out.println(date.toString());
上述代碼輸出結果為:
Fri Nov 19 12:46:12 CST 2021
雖然這個時間是以可讀的字元串格式呈現,但與時區有關,有時不符合我們的要求。因此,我們可以使用SimpleDateFormat類對日期進行格式化。
二、SimpleDateFormat類
SimpleDateFormat是一個用于格式化日期的類,它可以將日期轉換為任意格式的字元串,也可以將字元串解析成日期對象。下面是幾個常用的日期格式與對應的代碼:
- “yyyy-MM-dd HH:mm:ss.SSS”:2021-11-19 12:46:12.345
- “yyyy年MM月dd日 HH時mm分ss秒”:2021年11月19日 12時46分12秒
- “yyyy-MM-dd”:2021-11-19
- “HH:mm:ss”:12:46:12
對於毫秒時間戳轉換為日期格式,我們可以這樣寫:
long millisecond = 1637300772345L;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒");
String dateStr = dateFormat.format(new Date(millisecond));
System.out.println(dateStr);
上述代碼輸出結果為:
2021年11月19日 12時46分12秒
三、LocalDateTime類
Java 8 引入了新的 API — LocalDateTime,它提供了一個更好的解決方案來處理日期和時間。
使用LocalDateTime類的ofInstant()方法將毫秒時間戳轉換為日期,並使用DateTimeFormatter對日期進行格式化,即可輕鬆地轉換為可讀的日期格式。以下是示例代碼:
long millisecond = 1637300772345L;
Instant instant = Instant.ofEpochMilli(millisecond);
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = localDateTime.format(formatter);
System.out.println(formattedDateTime);
上述代碼輸出結果為:
2021-11-19 12:46:12
結語
本文總結了Java中幾種將毫秒時間戳轉換為日期格式的方法,它們都有各自的優缺點,需要根據實際情況選擇使用。Java中日期相關的類庫和方法比較豐富,希望讀者能夠掌握這些知識並在實際應用中靈活運用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/240338.html