使用 Univocity,如何将日期字符串值转换为 Java 中的日期类型

Using Univocity, how can I convert a date string value to a Date type in Java

我想将 csv 文件中的零列解析为特定数据类型,在本例中为日期对象。

下面的方法是我目前用来解析csv文件的方法,但我不知道如何合并这个要求。

import java.sql.Date;
public class Data {

    @Parsed(index = 0)
        private Date date;
    }
}

public <T> List<T> convertFileToData(File file, Class<T> clazz) {

    BeanListProcessor<T> rowProcessor = new BeanListProcessor<>(clazz);
    CsvParserSettings settings = new CsvParserSettings();
    settings.setProcessor(rowProcessor);
    settings.setHeaderExtractionEnabled(true);

    CsvParser parser = new CsvParser(settings);
    parser.parseAll(file);

    return rowProcessor.getBeans();
}

您只需定义日期的格式即可:

@Format(formats = {"dd-MMM-yyyy", "yyyy-MM-dd"})
@Parsed(index = 0)
    private Date date;
}

作为额外的建议,您还可以使用 CsvRoutines class 替换大量代码。试试这个:

List<T> beanList = new CsvRoutines(settings).parseAll(clazz, file);

希望对您有所帮助。