我想比較兩個日期。這裏是我的日期比較的代碼...java日期比較幫助要求
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操作系統和數據庫本身可能會有所不同。即使有相當高的分辨率,也會出現兩次更新在同一時刻發生並且未被檢測爲不同版本的情況。 – Ralf
是的。你們是對的。謝謝.....第一次約會:2014-04-02T08:35:12.000 + 1100 ......第二次約會:2014-04-02T08:35:12.015 + 1100 – Richie