Apache POI Date to String问题

时间:2014-09-12 21:53:49

标签: java string excel date apache-poi

我使用apache POI读取excel。我的excel文件中有一个日期字段,日期格式为" MM / dd / yy"。我想把所有的单元格都读成String。所以我使用" cell.setCellType(Cell.CELL_TYPE_STRING); "将所有单元格类型设置为字符串。当此单元格转换为String时,我在日期字段中看到的值是41886.如果我遗漏了任何内容,请告诉我。

谢谢。

3 个答案:

答案 0 :(得分:3)

字符串41886测量相对于Excel epoch的时间。相反,请将类型保留为Cell.CELL_TYPE_NUMERIC并使用DateUtil,如图所示here

if (DateUtil.isCellDateFormatted(cell)) {
    System.out.print(cell.getDateCellValue());
}

答案 1 :(得分:2)

Excel中的日期存储为浮点值,表示自某个纪元日期(我认为是1900年)以来的天数(和一天的分数)。您需要将日期值作为日期读取并使用Java进行转换。

答案 2 :(得分:2)

使用方法.formatCellValue(cell)将单元格的格式化值作为String返回此方法可以在DataFormatter

中找到

文档中的更多信息:

DateFormatter (POI Documentations)