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



我正在接收某人用excel编写的csv文件,我需要将这些文件解析到我的数据库中。

但是,当我尝试将日期解析为时间戳时,它告诉我格式不正确,并期望YYYY-MM-DD hh:mm:ss

有两种可能的解决方案,我不确定哪一种是可行的。
1. 在导出csv之前,excel是否将日期转换为YYYY-MM-DD hh:mm:ss2. 以某种方式在Java中转换Excel日期格式。

我尝试在Excel中更改格式,但我没有看到任何格式选项导致YYYY-MM-DD hh:mm:ss,我得到的最接近的是YY- mm -DD或mm/DD/YY

哪个是更好的解决方案,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
        }
    }

最简单的方法是修改原始数据集的格式。

您可以轻松创建自定义格式并将其应用于excel中所需的所有单元格。只需选择单元格,右键单击> format> Custom并添加新的格式:yyyy-mm-dd hh:mm:ss

来源:Microsoft

我选择选项2。

您可以使用SimpleDateFormat类来解析以不同格式格式化的日期,例如:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date dateStr = formatter.parse(strDate);

相关内容

  • 没有找到相关文章

最新更新