之前写了一篇文章是关于POI导出日期格式导出的,链接如下 POI日期格式导出
最近遇到了一个需求是关于导入时要处理导入时的日期格式的. 日期格式在Excel中比较坑爹的是, 在读取列为日期格式的时候, 可能它的单元格格式可能是字符串, 或者可能是日期, 那么就要根据不同的情况来进行处理.
代码如下
//判断单元格是否为空
if(row.getCell(0)==null || "".equals(row.getCell(0).toString())){
model.setModelDate("");
}else{
Cell cell = row.getCell(0);
if (cell.getCellType() != Cell.CELL_TYPE_STRING && DateUtil.isCellDateFormatted(cell)) {
//单元格格式为日期类型时
String strDate = "";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
double numericCellValue = cell.getNumericCellValue();
Date data = DateUtil.getJavaDate(cell.getNumericCellValue());
strDate = format.format(data);
model.setModelDate(strDate );
} else {
//单元格格式为字符串类型时
model.setModelDate(row.getCell(0).toString());
}
}
在oracle中对字符串的日期进行存储时,使用to_date函数进行转换 to_date(#{item.strDate},'yyyy-MM-dd')