以下代碼的主要想法是比較兩個日期,精度爲1分鐘。Calendar.before()返回錯誤的值
rc
是參考時間和tc
是一次考驗:
// Checking precision of 1 minute
Calendar upperBound, lowerBound;
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy hh:mm");
upperBound = (Calendar)rc.clone();
upperBound.add(Calendar.MINUTE, 1);
lowerBound = (Calendar)rc.clone();
lowerBound.add(Calendar.MINUTE, -1);
//Actual values
System.out.println("test "+dateFormat.format(tc.getTime()));
System.out.println("UpperB"+dateFormat.format(upperBound.getTime()));
System.out.println("LowerB "+dateFormat.format(lowerBound.getTime()));
//Tests
System.out.println("test after "+tc.after(lowerBound));
System.out.println("test before "+tc.before(upperBound));
和輸出如下:
test 05/10/2015 09:43.
UpperB 05/10/2015 09:44.
LowerB 05/10/2015 09:42.
test after false.
test before true.
我很困惑,因爲在Calendar.after()
比較測試日期的下限返回false
,它應該是true
之前打印的日期。
任何想法,也許我做錯了什麼?
什麼'rc'和'tc'?他們在哪裏定義?你嘗試過不同的格式嗎?這些時間是下午還是上午? – toniedzwiedz
打印每個日曆的getTimeInMillis()時會看到什麼? – Nitek
由於@toniedzwiedz問... rc被克隆,但tc被測試。 – yasd