2016-02-26 63 views
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; 
} 
+0

使用你不能比較字符串 '=='。它們是對象,你必須使用equals()方法。 – jtahlborn

回答

0

同時更改日期使用簡單日期格式字符串,然後進行比較。

SimpleDateFormat formatter = new SimpleDateFormat(「yyyy-MM-dd-hh.mm.ss」);

// create a new String using the date format we want 
String dateString= formatter.format(date);