最近我遇到了这个问题。2但是这种情况很少发生,有时我的程序运行得很顺利。3是什么触发了这个异常?4如何彻底解决这个问题:
代码:
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)
3条答案
按热度按时间zlwx9yxi1#
线程“Thread-5”java.time.格式出现异常。无法在索引16处解析文本“2015-11- 21 T14:15”
变更
到
由于您最多格式化分钟(
2015-11-21T14:15
),因此仅不包括秒(ss
)或者加上秒部分。
k10s72fa2#
您的日期字符串中有时没有ss,如生成日期-
2015-11-21T14:15
时出错所示。请使用yyyy-MM-dd'T'HH:mm
代替yyyy-MM-dd'T'HH:mm:ss
dfty9e193#
您不需要
DateTimeFormatter
java.time
API基于ISO 8601,因此您不需要DateTimeFormatter
来解析已经采用ISO 8601格式的日期-时间字符串(例如2015-11-21T14:15
)。你的模式有什么问题?
您的日期-时间字符串没有秒,但您使用了
ss
。您的模式yyyy-MM-dd'T'HH:mm:ss
可以在删除:ss
后使用。演示:
输出:
要了解有关现代日期-时间API的更多信息,请访问**Trail: Date Time**。