我正在编写此段代码,以便将查询与数据库与当前日期进行比较,以便判断学生是否已经在课程中进行了检查。我可以将它们都转换为字符串,它们看起来相同,但它们在字节级别上有所不同,if语句仍然返回false。可以做些什么?
这也行不通。
java.sql.Date date = new Date();
它给出了一个错误,这就是我尝试使用前两行将格式更改为.sql.Date的原因。它没有帮助,但我把它留在那里以显示我尝试过的东西。
这是代码
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 :(得分: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);