导入包含多行的Excel文件。有些列是日期,我必须按原样读取它们,但Apache poi无法正确读取单元格的格式。 确实日期必须是dd / MM / YYYY但是当我有04/13/2017时,Apache poi库认为它的格式为MM / dd / YYYY,并且因此读取日期。
我如何告诉apache poi以正确的格式阅读日期?
下面是我的代码示例:
case Cell.CELL_TYPE_NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
Date d = cell.getDateCellValue());
System.out.println(myWorkBook.getSheetName(i) + " " + cell.getNumericCellValue() + "\t");
}
答案 0 :(得分:1)
正确的方法是使用getDataFormatString,因为它在这个答案中完成Validating the excel date for MM/dd/yyyy format 但是builtin formats是有限的。
如果内置格式的限制困扰您,则将值作为字符串转换是通过Data formatter
完成的DataFormatter formatter = new DataFormatter();
String formattedValue = formatter.formatCellValue(cell);
日期字段的验证已经从Excel文件中执行,如果日期格式不正确,则日期将被读取。