Apache POI で作成されたスプレッドシートにある日付を確認しようとしています。System.out.print
Date 変数を実行すると、セルの内容は同じです。テストが失敗するのはなぜですか?
@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")
て2つの要素を比較しようとすると、失敗します。
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;
}