如何将Excel日期转换为Java的时间戳?

时间:2014-05-21 08:16:47

标签: java excel datetime

我正在接收某人在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
        }
    }

2 个答案:

答案 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);