我有解析以下日期格式問題:DateTimeFormatter無法解析由自身產生串
2017-03-27T08:27:43.326TGMT-05:00
我有代碼,其中DateTimeFormatter
產生串出的ZonedDateTime
,並作爲下一步我試圖再次解析字符串,創建ZonedDateTime
實例,但是如我所料不工作:
String pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'T'ZZZZ";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
String dateStr = ZonedDateTime.now().format(formatter);
System.out.println(dateStr);
ZonedDateTime dateParsed = ZonedDateTime.parse(dateStr, formatter);
System.out.println(dateParsed);
上面的代碼產生:
2017-03-27T08:27:43.326TGMT-05:00
java.time.format.DateTimeParseException: Text '2017-03-27T08:27:43.326TGMT-05:00' could not be parsed: String index out of range: 33
at java.time.format.DateTimeFormatter.createError(DateTimeFormatter.java:1920)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1855)
尋找任何見解如何拿出工作模式,它能夠創造ZonedDateTime
實例出來的2017-03-27T08:27:43.326TGMT-05:00
改變你的模式爲:'String pattern =「yyyy-MM-dd'T'HH:mm:ss.SSS'T'ZZZZZ」;'(一個Z更多),它的工作原理 – Jens
似乎也適用於剛三個Zs。 –
@BrianClapper,但是三個Z會導致輸出與OP有'.512T-0500'而不是'.512TGMT-05:00' –