【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”。
如果要成功解析時間字串,
可使用 ZonedDateTime
、OffsetDateTime
類別,
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.
參考資料
- ChatGPT
- [OCAJP]日期與時間3