Как задать условие для чтения с Excel файла формата Date отдельно времени и даты?

написал условие для определения типа столбцов, которое должно определить столбец времени или даты, только при запуске ни чего не выводит, подскажите пожалуйста в чем моя ошибка...

public List<String> extractExcelContentByColumnIndex(int columnIndex) {
    LinkedList<String> columndata = null;
    String fileName = "PrimerRaspisania.xlsx";
    try {
        File f = new File(fileName);
        FileInputStream ios = new FileInputStream(f);
        XSSFWorkbook workbook = new XSSFWorkbook(ios);
        XSSFSheet sheet = workbook.getSheetAt(0);
        Iterator<Row> rowIterator = sheet.iterator();
        columndata = new LinkedList<>();

        while (rowIterator.hasNext()) {
            Row row = rowIterator.next();
            Iterator<Cell> cellIterator = row.cellIterator();
            while (cellIterator.hasNext()) {
                Cell cell = cellIterator.next();
                
                if (row.getRowNum() > 0) { //To filter column headings
                    if (cell.getColumnIndex() == columnIndex) {// To match column index
                        switch (cell.getCellType()) {
                            case Cell.CELL_TYPE_NUMERIC:

                                if (DateUtil.isCellDateFormatted(cell)) {
                                    String date = "dd.MM.yyyy";
                                    String time = "HH:mm";
                                    String cellSt = cell.toString();
                                        SimpleDateFormat sdfd = new SimpleDateFormat(date);
                                       if (cellSt == date) { 
                                        columndata.add(sdfd.format(cell.getDateCellValue()));
                                    } 
                                        SimpleDateFormat sdft = new SimpleDateFormat(time, Locale.UK); // дата в формате 24 часа
                                        if (cellSt == time) {
                                        columndata.add(sdft.format(cell.getDateCellValue()));
                                    }
                                } else {
                                    columndata.add((int) cell.getNumericCellValue() + "");
                                }
                                break;
                            case Cell.CELL_TYPE_STRING:

                                columndata.add(cell.getStringCellValue());
                                break;
                        }
                    }
                }
            }
        }
        ios.close();
        Iterator it = columndata.iterator();
        while (it.hasNext()) {
            System.out.println(it.next());
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return columndata;
}

Ответы (1 шт):

Автор решения: brun0

Вы сравниваете строковое значение ячейки с паттернами парсинга даты\времени - cellSt == date и cellSt == time, что является ошибкой. Вместо этого, вам нужно попытаться спарсить дату\время из строки и только после успешного парсинга добавлять найденное значение в коллекцию columnData

→ Ссылка