无法在索引16 Java Seldomly Triggered中解析DateTimeParseException

时间:2015-11-21 06:40:11

标签: java datetime

最近我遇到了这个问题。但这种情况很少发生,有时我的程序运行顺利。什么是触发此异常?如何彻底解决这个问题:

代码:

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)

2 个答案:

答案 0 :(得分:2)

  

线程“Thread-5”中的异常   java.time.format.DateTimeParseException:Text'2015-11-21T14:15'可以   不能在索引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

或添加秒部分。

答案 1 :(得分:0)

您有时会在错误生成日期 - 2015-11-21T14:15中看到日期字符串中的ss。使用yyyy-MM-dd'T'HH:mm代替yyyy-MM-dd'T'HH:mm:ss