0

我正在尝试使用 OpenCSV 将数据导出到 CSV。

数据库是 Universe Db,CSV 以“$”作为分隔符生成良好。

但是,当我们尝试将相同的 CSV 数据加载到 IBM DB2 数据库中时,它会因为不兼容的日期格式(即DD-MMM-YYYY)而失败,因为 IBM DB2 不支持这种格式。

生成 CSV 的代码:

private CSVWriter writer; 
writer = new CSVWriter(new OutputStreamWriter(new FileOutputStream(savePath + "\\" + tableName+ ".csv"),"UTF-8"), '$',CSVWriter.NO_QUOTE_CHARACTER); 
writer.writeAll(rs, false); //rs is the resultset returned for the select query 
writer.flush(); 

我们正在使用 DB2s load & imp 命令加载 csv。

如何在生成 CSV 时更改默认日期格式?

活动目的:将数据从 Universe db 加载到 IBM DB2 数据库。

注意:Universe DB 不支持更新结果集,因此未考虑该选项 :)

4

2 回答 2

2

尝试使用自定义 ResultSetHelperService :

String filemane = "export.csv";
CSVWriter csvWriter = new CSVWriter(new FileWriter(filename));
ResultSetHelperService resultService = new ResultSetHelperService();
resultService.setDateFormat("yyyy-MM-dd");
resultService.setDateTimeFormat("yyyy-MM-dd HH:mm:ss");
csvWriter.setResultService(resultService);
于 2020-05-02T20:50:49.397 回答
1

目前在 openCSV 的主干构建中,ResultSetHelperService 发生了变化,允许您将日期和日期时间格式设置为您想要的格式,然后您可以在处理结果集之前在您创建的 CSVWriter 中调用 setResultSetHelper。

这些将在 3.6 版本中发布,该版本计划在接下来的几周内发布(我只是在等待这个版本的主要贡献者从蜜月期回来)。

于 2015-11-02T18:49:20.503 回答