【发布时间】:2019-03-20 16:31:09
【问题描述】:
所以,我有一个方法可以将一些对象列表写入 CSV。
private void writeToCSV(List<Employee> empList) {
try(BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(System.getProperty("java.io.tmpdir")+"Test.csv"), "UTF-8"))) {
empList.forEach(eachEmployee -> {
StringBuilder builder = new StringBuilder();
builder.append(eachEmployee.getName());
builder.append(CSV_SEPARATOR);
builder.append(eachEmployee.getID());
builder.append(CSV_SEPARATOR);
builder.append(eachEmployee.getJoiningDate());
writer.write(builder.toString());
writer.newLine();
});
}
}
这里,员工的入职日期为 2019/03/20 格式,即 yyyy/MM/dd 格式。而且我也应该以相同的格式将其写入 CSV。 但是当我检查 CSV 时,它是 2019 年 3 月 20 日,即 MM/dd/yyyy 格式。 知道我哪里出错了吗?
编辑:加入日期是一种字符串
【问题讨论】:
-
什么是加入日期?字符串还是日期对象?
-
更新了问题。它是一种字符串
-
您需要将字符串解析为日期对象,然后再次解析为字符串。
-
您是如何检查 CSV 的?碰巧,您在 Excel 中打开了它?在这种情况下,Excel 可能已对其进行了转换。尝试使用简单的文本编辑器打开文件。
-
@RobertKock 是的,我确实在 Excel 中打开了它。我能做些什么来对抗 Excel 的这种行为吗?
标签: java csv bufferedwriter