3
我正在使用ZonedDateTime
解析並根據時區獲取當前時間。ZonedDateTime解析成功,但輸出字符串不同
當我解析以下String
時,解析成功,但輸出String
是不同的。這是爲什麼?
String dateTimeString = "2016-05-04T12:58:22+01:00[Europe/Paris]";
ZonedDateTime dateTime = ZonedDateTime.parse(dateTimeString, ISO_ZONED_DATE_TIME);
System.out.println(dateTimeString);
System.out.println(dateTime.toString());
輸出
2016-05-04T12:58:22+01:00[Europe/Paris]
2016-05-04T12:58:22+02:00[Europe/Paris]
在沒有它決定什麼時候改變+1
到+2
,爲什麼沒有異常拋出?
據我所知,括號內的參數[Europe/Paris]
是可選的,但在這裏它優先於偏移量。
在另一方面,下面的代碼
String dateTimeString = "2016-05-04T12:58:22+01:00";
ZonedDateTime dateTime = ZonedDateTime.parse(dateTimeString, ISO_ZONED_DATE_TIME);
System.out.println(dateTimeString);
System.out.println(dateTime.toString());
產生輸出
2016-05-04T12:58:22+01:00
2016-05-04T12:58:22+01:00
感謝您的回覆。我知道這是一個錯誤的日期,爲什麼它解析成功?這是一個設計缺陷。 – Olayinka
我猜想規範中有一個確定的優先級。但我沒有檢查。 – spa