使用OpenCSV导出结果集数据时更改默认日期格式

时间:2015-11-02 11:13:17

标签: database date load opencsv universe

我正在尝试使用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& amp加载csv。 imp命令。

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

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

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

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

目前在openCSV的trunk构建中,ResultSetHelperService发生了更改,允许您将日期和日期时间格式设置为所需的格式,然后可以在处理结果集之前调用您创建的CSVWriter中的setResultSetHelper。

这些将在3.6版本中出现,预计将在未来几周内发布(我只是在等待此版本的主要贡献者从蜜月回来)。