我正在接收某人在excel中编写的csv文件,我需要将这些文件解析到我的数据库中。
然而,当我尝试将日期解析为时间戳时,它告诉我格式不正确并且期望YYYY-MM-DD hh:mm:ss
这有两种可能的解决方案,我不确定哪一种实际上是可行的 1.在导出csv之前,excel将日期转换为YYYY-MM-DD hh:mm:ss 2.以某种方式在Java中转换Excel日期格式。
我试图在Excel中更改格式,但我没有看到任何格式化选项导致YYYY-MM-DD hh:mm:ss我得到的最接近的是YY-MMM-DD或MM / DD / YY < / p>
哪种溶剂更好,1或2,我该怎么做?
编辑相关的Javacode片段:
public static List<AffiliateEntry> convert(ArrayList<String[]> collection) {
List<AffiliateEntry> entryList = new ArrayList<AffiliateEntry>();
HashMap<String, Integer> columnIndex = new HashMap();
for (int col_index = 0; col_index < collection.get(0).length; col_index++) {
columnIndex.put(collection.get(0)[col_index].trim(), col_index);
}
for (int i = 1; i < collection.size(); i++) {
String[] row = collection.get(i);
AffiliateEntry convertedEntry = new AffiliateEntry();
int dateIndx = columnIndex.get("Date") != null ? columnIndex.get("Date") : 0;
Timestamp date = (row[dateIndx] != null && !row[dateIndx].isEmpty()) ? Timestamp.valueOf(row[dateIndx]) :
new Timestamp(System.currentTimeMillis());
convertedEntry.setReport_date(date);
....//more things to convert
}
}
答案 0 :(得分:2)
最简单的方法是修改原始数据集的格式。
您可以轻松创建自定义格式并将其应用于Excel中所需的所有单元格。只需选择单元格,右键单击&gt;格式&gt;自定义并添加新格式:yyyy-mm-dd hh:mm:ss
来源:Microsoft
答案 1 :(得分:0)
我会选择选项2.
您可以使用SimpleDateFormat类来解析以不同格式格式化的日期,例如:
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date dateStr = formatter.parse(strDate);