【Java】【OCA】3.What is the result?

最後更新日期:2024年09月15日

題目

Given the code fragment:

public static void main(String[] args) {
    String date = LocalDate
            .parse("2014-05-04")
            .format(DateTimeFormatter.ISO_DATE_TIME);
    System.out.println(date);
}

What is the result?
A. May 04, 2014T00:00:00.000
B. 2014-05-04T00:00: 00.000
C. 5/4/14T00:00:00.000
D. An exception is thrown at runtime.

解題

使用 LocalDate.parse() 讀取時間字串並產生 LocalDate 物件,
再用 LocalDate.format()LocalDate 物件依指定格式轉成字串,
但此時會拋出 UnsupportedTemporalTypeException 例外。

原因在於 ISO_DATE_TIME 格式無法用於 LocalDate 物件,
因為 LocalDate 物件沒有時間(時分秒)的資料,
ISO_DATE_TIME 格式需要日期 + 時間,
改成 ISO_DATE,可以印出 “2014-05-04”。

如果要成功解析時間字串,
可使用 ZonedDateTimeOffsetDateTime 類別,

public static void main(String[] args) {
    String date = ZonedDateTime
            .parse("2024-05-04T15:23:01.123Z")
            .format(DateTimeFormatter.ISO_DATE_TIME);
    System.out.println(date);
}

即可印出結果 2024-05-04T15:23:01.123Z

答案

D. An exception is thrown at runtime.

參考資料

  1. ChatGPT
  2. [OCAJP]日期與時間3

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *