我正在做一些junit測試。我得到的日期作爲日期如下形式響應:如何驗證兩種不同格式的日期
2017-08-14 00:00:00.0 +0:00
這是目前在Oracle中的數據DB是
14-AUG-17 12.00.00.000000000 AM +00:00
我想用這樣的斷言,但它失敗。任何人都可以幫助確保預期的和實際的匹配。
Assert.assertEquals("14-08-2017", 2017-08-14 00:00:00.0 +0:00);
我正在做一些junit測試。我得到的日期作爲日期如下形式響應:如何驗證兩種不同格式的日期
2017-08-14 00:00:00.0 +0:00
這是目前在Oracle中的數據DB是
14-AUG-17 12.00.00.000000000 AM +00:00
我想用這樣的斷言,但它失敗。任何人都可以幫助確保預期的和實際的匹配。
Assert.assertEquals("14-08-2017", 2017-08-14 00:00:00.0 +0:00);
您可以創建兩個Date對象和斷言。
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
try {
Date parsedDate1 = formatter.parse("14-08-2017");
System.out.println(parsedDate1);
SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM-dd");
Date parsedDate2 = formatter2.parse("2017-08-1 00:00:00.0 +0:00");
Assert.assertEquals(parsedDate1, parsedDate2);
} catch (ParseException e1) {
}
謝謝。有用 – user2326831
您可以使用SimpleDateFormat
從日期製作字符串。
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
Assert.assertEquals("14-08-2017", sdf.format(<your date instance>));
「你的日期實例」的意思。我有一個字符串,格式爲「2017-08-14 00:00:00.0 +0:00」。你的意思是說我應該像這樣Assert.assertEquals(「14-08-2017」,sdf.format(2017-08-14 00:00:00 +0:00)); – user2326831
謝謝,它的工作 – user2326831
在Oracle中,日期沒有格式[它存儲爲7或8字節](https://stackoverflow.com/documentation/oracle/2087/dates/6848/the-format -of-A-日期)。如果格式應用於日期,則由訪問數據庫的用戶界面完成。在SQL/Plus或SQL開發者的情況下,格式由'NLS_DATE_FORMAT'會話參數決定;其他接口(例如Java)可能會應用不同的默認格式,或者可能僅以原始[字節格式]存儲它(https://docs.oracle.com/cd/E16338_01/appdev.112/e13995/oracle/sql/TIMESTAMP。 HTML)。 – MT0