先日書いた
oboe2uran.hatenablog.com
よりも、
やはり、org.apache.poi.ss.usermodel.DateUtil#isCellDateFormatted(Cell cell) を使うべきで、
セルの日付の値取得はこうすべきだ。
(例)
XSSFWorkbook book = new XSSFWorkbook(inputstream); XSSFSheet sheet = book.getSheetAt(0); XSSFCell cel = sheet.getRow(0).getCell(1); if (cel.getCellType().equals(CellType.NUMERIC) && DateUtil.isCellDateFormatted(cel)){ LocalDate date = cel.getDateCellValue().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); }
XSSFCell cel = sheet.getRow(0).getCell(2); if (cel.getCellType().equals(CellType.NUMERIC) && DateUtil.isCellDateFormatted(cel)){ LocalDateTime datetime = cel.getDateCellValue().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); }