从CSV文件中解析HH:mm:ss

时间:2019-01-30 19:05:29

标签: java date parsing

我正在加载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中定义的格式有关,但是我仍然看不到我的错误。我希望你们能帮助我!

1 个答案:

答案 0 :(得分:2)

我认为您的问题是您尝试将本地时间解析为日期。 您可以使用LocalTime对象代替。

LocalTime.parse(highscore[3]);