3

我正在尝试验证使用 Apache POI 创建的电子表格中的日期。当我执行System.out.printDate 变量时,单元格内容是相同的。为什么测试失败?

@Test
public void testSpreadsheetCont() throws Exception {
    Date date = new Date();
    boolean success = false;
    FileInputStream fileInputStream = new FileInputStream("File Location.xls");
    HSSFWorkbook workbook = new HSSFWorkbook(fileInputStream);
    HSSFSheet worksheet = workbook.getSheetAt(0);
    HSSFRow row1 = worksheet.getRow(2);
    HSSFCell cell0 = row1.getCell(0);
    System.out.println(cell0.getDateCellValue());
    System.out.println(date);

    if (cell0.getDateCellValue() == date) {
        success = true;
    } else {
        success = false;
    }
    Assert.assertTrue(success);
}

我认为错误是我在生成电子表格的类中格式化日期的方式。在那里它被格式化为("mm/dd/yyyy hh:mm"). 但是当我将日期变量格式化("mm/dd/yyyy hh:mm")并尝试比较这两个元素时,它是不成功的。

Date date = new Date();
SimpleDateFormat ft = new SimpleDateFormat("mm/dd/yyyy hh:mm");
if (cell0.getDateCellValue().toString() == ft.format(date)) {
    success = true;
} else {
    success = false;
}
4

2 回答 2

2

使用以下进行比较。也许这可能是原因。

if(cell0.getDateCellValue().compareTo(date)==0){
    success = true;
    }else{
        success = false;
    }
于 2013-07-15T15:48:14.823 回答
2

难怪它不起作用,因为您正在比较两个 Date 引用 - 您总是会在那里得到错误。

于 2013-07-16T08:02:20.853 回答