在Excel中的日期格式,其数值为距离1900年1月1日的天数。
可以自己单独写个方法返回值为String型的方法将获得的HSSFCell类型转化为String再用SimpleDateFormat.parse方法转成Date。
思路是:先判断HSSFCell数据类型,excel表格中的日期不一定是标准的日期类型,所以用hssfCell.getCellType()方法获取类型,再用switch判断,若是数字类型则用HSSFDateUtil中的getJavaDate方法获取(),其他的则转成String型,实例:
private String getDate(HSSFCell hssfCell){
DecimalFormat df = new DecimalFormat("#");
if(hssfCell == null){
return "";
}
switch (hssfCell.getCellType()){
case HSSFCell.CELL_TYPE_NUMERIC:
if(HSSFDateUtil.isCellDateFormatted(hssfCell)){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(HSSFDateUtil.getJavaDate(hssfCell.getNumericCellValue()));
}
return df.format(hssfCell.getNumericCellValue());
case HSSFCell.CELL_TYPE_STRING:
return hssfCell.getStringCellValue();
case HSSFCell.CELL_TYPE_FORMULA:
return hssfCell.getCellFormula();
case HSSFCell.CELL_TYPE_BLANK:
return "";
}
return "";
}
要用Date型可用SimpleDateFormat.parse方法获取。
例:
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd");
tabledto.setCreatedate(dateformat.parse(getDate(createdate)));