두 데이터 유형을 비교할 때 몇 가지 문제점을 발견했습니다. 변수 -> java.sql.Date 유형.자바에서 두 날짜 유형을 비교하십시오
첫째로 내가 createing하고있어 현재의 데이터 (yyyy-mm-dd)이 :
java.util.Date date = new java.util.Date();
java.sql.Date dateSql = new Date(date.getTime());
Secoundly, MySQL의에서 메신저 데이터를 수신 : 다음
MyDataEntity myDataEntity = session.getNamedQuery(MyDataEntity.GET_ELEMENT).uniqueResult();
내가 두 날짜를 비교하기 위해 노력하고있어를 :
if(dataSql != myDataEntity.getDate()){
System.out.println("different");
}else{
System.out.println("these same");
}
효과는 항상이 두 날짜가 다릅니다. 나는이 두 datas의 값을 인쇄하고있을 때, 나는이 같은 값을 가지고 :
System.out.println(dataSql);
System.out.println(myDataEntity.getDate);
효과 :
2012-11-16
2012-11-16
그러나, 내가 하나가 문제를 발견
내가 할 경우 :
long date1 = dateSql.getTime(); // print 1353106800000
long date2 = myDataEntity.getDate().getTime(); // print 1353234605091
어떻게 두 날짜 (yyyy-mm-dd)를 비교합니까? 그들은 힙에 동일한 개체 경우 오히려 자신의 가치보다, 즉 - 자신의 JVM ID를 ==
을 비교하여 someDate.equals(anotherDate)
-