두 날짜를 비교하려고합니다. 여기 내 날짜는 ...자바 날짜 비교 도움말이 필요합니다
Date dbLastModified = getBulletinBarMessageLastModified();
Date bulletinBarMessageLastModified = bulletinBarForm.getLastModified();
if (dbLastModified.after(bulletinBarMessageLastModified)){
throw new ReportingManagerOptimisticLockingException(optimisticLockingMessage);
}
public Date getBulletinBarMessageLastModified() {
Timestamp lastModifiedTimestamp = getJdbcTemplate().queryForObject(BULLETIN_BAR_MSG_LAST_MODIFIED_SQL,Timestamp.class);
Date lastModifiedDate = new Date(lastModifiedTimestamp.getTime());
return lastModifiedDate;
}
를 ... 코드를 비교한다
dbLastModified - Tue Apr 01 22:29:04 EST 2014
bulletinBarMessageLastModified - Tue Apr 01 22:29:04 EST 2014
좀 날짜가 왜 내 코드를 던지고있다 (예 : 두 것과 같은) 겉보기에 동일한 경우에도 이유에 혼란 스러워요 ReportingManagerOptimisticLockingException
예외는 다른 하나가 이고 다른 하나가 인 것을 나타냅니다. 날짜 비교에 대한 나의 이해가 잘못 되었습니까?
날짜는 밀리 초 단위로 저장되므로 동일하게 보더라도 밀리 초 단위로 실제로 달라질 수 있습니다. –
타임 스탬프가 버전 데이터 유형으로 안정적으로 작동하지 않습니다. 클라이언트의 타임 스탬프 해결 방법 중 하나는 DB OS와 DB 자체가 다를 수 있습니다. 그리고 상당히 높은 해상도로도 동일한 순간에 두 건의 업데이트가 발생하고 다른 버전으로 감지되지 않는 경우가 있습니다. – Ralf
예. 너희들이 옳았다. 감사합니다 ..... 첫 데이트 : 2014-04-02T08 : 35 : 12.000 + 1100 ...... 두 번째 데이트 : 2014-04-02T08 : 35 : 12.015 + 1100 – Richie