我正在尝试使用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不支持更新结果集,因此未考虑该选项:)
答案 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版本中出现,预计将在未来几周内发布(我只是在等待此版本的主要贡献者从蜜月回来)。