我正在加载CSV文件,需要将两个字符串解析为localdate。基本上我的项目是关于“高分”列表的。
CSV文件中的示例格式:{David,18.01.2019,Easy,00:05:30}
br = new BufferedReader(new FileReader(csvFile));
DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("dd.MM.yyyy");
DateTimeFormatter timeFormat = DateTimeFormatter.ofPattern("HH:mm:ss");
while ((line = br.readLine()) != null) {
String[] highscore = line.split(cvsSplitBy);
HighScore highScore = new HighScore(
highscore[0],
LocalDate.parse(highscore[1], dateFormat),
highscore[2],
LocalDate.parse(highscore[3], timeFormat));
highScoreList.add(highScore);
尝试解析00:05:30时会引发异常。
java.time.format.DateTimeParseException:无法解析文本“ 00:05:30”:无法从TemporalAccessor:{}获取LocalDate,ISO解析为java.time.format类型的00:05:30。解析
现在,我知道这与我先前在timeFormat中定义的格式有关,但是我仍然看不到我的错误。我希望你们能帮助我!
答案 0 :(得分:2)
我认为您的问题是您尝试将本地时间解析为日期。 您可以使用LocalTime对象代替。
LocalTime.parse(highscore[3]);