2015-11-21 31 views
1

最近我遇到了這個問題。但是這很少發生,有時我的程序運行順利。什麼觸發了這個異常?如何徹底解決這個問題:DateTimeParseException無法在索引16處解析Java很少觸發

代碼:

63: DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss", Locale.US); 
64: String strLocalDate = loginRecords.getLoginDate().toLocalDateTime().toString(); 
65: LocalDateTime lastLogin = LocalDateTime.parse(strLocalDate, formatter); 

異常文本:

Exception in thread "Thread-5" java.time.format.DateTimeParseException: Text '2015-11-21T14:15' could not be parsed at index 16 
    at java.time.format.DateTimeFormatter.parseResolved0(Unknown Source) 
    at java.time.format.DateTimeFormatter.parse(Unknown Source) 
    at java.time.LocalDateTime.parse(Unknown Source) 
    at com.fesca.view.MainMenuFrame.<init>(MainMenuFrame.java:65) 
    at com.fesca.control.listener.CheckingRehabDateListener.run(CheckingRehabDateListener.java:287) 
+0

從yyyy-MM-dd'T'HH:mm:ss更改您的formater到yyyy-MM-dd'T'HH:mm然後開始解析。 –

+0

您錯過了輸入時間的秒數。要麼添加秒,要麼就像Usman說的那樣改變你的格式化程序。 – blld

+0

@UsmanKurd我在我的數據庫中有第二個。第二個是00時發生問題。其他值看起來運行良好。任何解決方案 – SkyvrawleR

回答

2

在線程異常 「主題-5」 java.time.format.DateTimeParseException:文本'2015-11-21T14:15'could not indexed in index 16

變化

yyyy-MM-dd'T'HH:mm:ss 

yyyy-MM-dd'T'HH:mm 

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm", Locale.US); 

既然要格式化高達分鐘(2015-11-21T14:15)只有不包含秒(ss

或添加秒的一部分。

+0

我在我的數據庫中有第二個。第二個是00時發生問題。其他值看起來運行良好。任何解決方案 – SkyvrawleR

+0

如果秒數爲00,則使用'yyyy-MM-dd'T'HH:mm:ss'。 @SkyvrawleR – Satya

0

在錯誤生成日期 - 2015-11-21T14:15中,您有時沒有在日期字符串中獲得ss。使用yyyy-MM-dd'T'HH:mm而不是yyyy-MM-dd'T'HH:mm:ss