我想将csv文件中的第0列解析为特定的数据类型,在本例中为Date对象。
以下方法是我目前用来解析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();
}
答案 0 :(得分:2)
您只需要定义日期的格式并设置:
@Format(formats = {"dd-MMM-yyyy", "yyyy-MM-dd"})
@Parsed(index = 0)
private Date date;
}
作为额外的建议,您还可以使用CsvRoutines
类替换大量代码。试试这个:
List<T> beanList = new CsvRoutines(settings).parseAll(clazz, file);
希望它有所帮助。