如何将Excel中的日期(12-dec-2020)导入MySQL?Java日期处理报错求助
解决Excel日期格式转换的SimpleDateFormat错误问题
错误原因分析
- 缺失必要导入:未导入
java.text.SimpleDateFormat、java.text.ParseException和java.util.Date,导致编译器无法识别相关类,触发"The import cannot be resolved"错误。 - 方法调用逻辑颠倒:
SimpleDateFormat.format()需要传入Date类型对象,你直接传递字符串(exdata[1][5].toString()),必然出现"Cannot format given Object as a Date";后续用错误格式的字符串执行parse操作,又会引发"unparseable date"异常。 - Excel单元格处理不当:直接用
String.valueOf(ecolumn)转换日期单元格,会将Excel内部的日期值转为默认的dd-MMM-yyyy格式字符串,增加后续转换的复杂度。
解决方案
1. 导入必要依赖包
在代码头部添加以下导入语句:
import java.text.SimpleDateFormat; import java.text.ParseException; import java.util.Date; import java.util.Locale; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.DateUtil;
2. 正确读取Excel日期单元格(推荐方案)
不要直接将日期单元格转为字符串,而是先获取Date对象,再按需格式化存入数组:
for (int row = 0; row < sheet.getLastRowNum() + 1; row++) { XSSFRow erow = sheet.getRow(row); for (int column = 0; column < sheet.getRow(0).getLastCellNum(); column++) { XSSFCell ecolumn = erow.getCell(column); if (ecolumn != null) { // 判断是否为日期类型单元格 if (ecolumn.getCellType() == CellType.NUMERIC && DateUtil.isCellDateFormatted(ecolumn)) { Date cellDate = ecolumn.getDateCellValue(); // 按Excel原格式"MM/dd/yyyy"转为字符串存入数组 exdata[row][column] = new SimpleDateFormat("MM/dd/yyyy").format(cellDate); } else { // 非日期单元格正常转字符串 exdata[row][column] = String.valueOf(ecolumn); } } else { exdata[row][column] = ""; // 处理空单元格 } } } // 后续转换为目标格式示例 try { Date date = new SimpleDateFormat("MM/dd/yyyy").parse(exdata[1][5]); String targetFormat = new SimpleDateFormat("yyyy-MM-dd").format(date); System.out.println(targetFormat); } catch (ParseException e) { e.printStackTrace(); }
3. 处理已存入数组的dd-MMM-yyyy格式字符串
如果数组中已经是12-dec-2020这类字符串,需要先按对应格式解析为Date,再转成目标格式:
try { // 指定英文Locale避免月份缩写解析失败 Date date = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH).parse(exdata[1][5]); String formattedDate = new SimpleDateFormat("yyyy-MM-dd").format(date); System.out.println(formattedDate); } catch (ParseException e) { e.printStackTrace(); }
内容的提问来源于stack exchange,提问作者Yasmine El
相关产品推荐
相关产品推荐

