先上代碼:
ZonedDateTime dateTime = ZonedDateTime.ofInstant(Instant.ofEpochMilli(System.currentTimeMillis()),zone
);
//2019-12-01T19:01:46+08:00String formattedDate = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")
);
//2019-12-01String formattedTime = dateTime.format(DateTimeFormatter.ofPattern("HH:mm:ss")
);
//19:01:46
ZonedDateTime
類
ZonedDateTime
是Java 8中用于表示帶有時區信息的日期和時間的類。它包含了日期、時間和時區的信息。
ZonedDateTime.ofInstant
是ZonedDateTime
類的一個靜態方法,用于根據給定的時間戳和時區創建一個ZonedDateTime
對象。它的方法簽名如下:
public static ZonedDateTime ofInstant(Instant instant, ZoneId zone)
參數說明:
instant
:一個Instant
對象,表示時間戳。Instant
是一個不帶時區信息的時間點,通常用于表示從1970年1月1日午夜開始經過的秒數或毫秒數。zone
:一個ZoneId
對象,表示時區。ZoneId
是一個用于表示時區標識符的類,例如:"Asia/Shanghai"、"America/New_York"等。
Instant
類
Instant
是Java 8中用于表示時間戳的類。它表示從1970年1月1日午夜開始經過的秒數或毫秒數。
Instant.ofEpochMilli()
是Instant
類的一個靜態方法,用于根據給定的以毫秒為單位的時間戳創建一個Instant
對象。它的方法簽名如下:
public static Instant ofEpochMilli(long epochMilli)
參數說明:
epochMilli
:一個long
類型的參數,表示以毫秒為單位的時間戳。
DateTimeFormatter
類
dateTime.format()
是DateTimeFormatter
類的一個實例方法,用于將日期時間對象格式化為指定的字符串表示形式。它的方法簽名如下:
public String format(TemporalAccessor temporal)
參數說明:
temporal
:一個實現了TemporalAccessor
接口的對象,表示日期時間。ZonedDateTime
是TemporalAccessor
接口的一個實現類。
DateTimeFormatter.ofPattern("HH:mm:ss")
是DateTimeFormatter
類的一個靜態方法,用于創建一個日期時間格式化器對象。它的方法簽名如下:
public static DateTimeFormatter ofPattern(String pattern)
參數說明:
pattern
:一個字符串,表示日期時間的格式模式。