0
我正在寫這段代碼,以便將當前日期與數據庫的查詢進行比較,以便判斷學生是否已被簽入類。我可以將它們都轉換爲字符串,它們看起來相同,但他們都以某種方式不同在字節級和if語句仍返回false。可以做什麼?不恰當地比較java.util.date和java.sql.date
而且這不起作用。
java.sql.Date date = new Date();
它給出了一個錯誤,這就是爲什麼我試圖將格式更改爲.sql.Date與第2行。它沒有幫助,但我把它放在那裏展示我都試過了。
這裏是代碼
public boolean checkTodaysAttendance(int ID){
//date stuff
java.util.Date date = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
//System.out.println(sqlDate);
boolean attend = false;
try {
PreparedStatement statement = con.prepareStatement("SELECT Date FROM attendance WHERE ID="+ID);
rs1 = statement.executeQuery();
while(rs1.next()) {
//System.out.println(rs1.getDate("Date"));
if (rs1.getDate("Date").toString().trim(). == sqlDate.toString().trim()) { //my problem is on this line
attend = true; //string don't equal at a byte level
}
}
}catch(Exception ex){
System.out.println(ex);
}
//System.out.println(attend);
return attend;
}
使用你不能比較字符串 '=='。它們是對象,你必須使用equals()方法。 – jtahlborn