public boolean isOlder(Date receivedDate, Date lastReceivedDate) { // now we check to see if the timestamp of this message is newer than that of // the last received date, so we are getting new google voice messages only Calendar newMsgReceivedDate = Calendar.getInstance(TimeZone.getDefault()); Calendar oldReceivedDate = Calendar.getInstance(TimeZone.getDefault()); newMsgReceivedDate.setTime(receivedDate); oldReceivedDate.setTime(lastReceivedDate); if (log.isDebugEnabled()) log.debug( String.format( "Calendar Message age check. Sent date %s %s, received date %s %s", newMsgReceivedDate.getTime().getTime(), newMsgReceivedDate.getTime(), oldReceivedDate.getTime().getTime(), oldReceivedDate.getTime())); if (newMsgReceivedDate.getTime().compareTo(oldReceivedDate.getTime()) <= 0) return true; if (log.isDebugEnabled()) log.debug( String.format( "Calendar explicit equal check: Seconds %s %s \n, minutes %s %s \n, hours %s %s", newMsgReceivedDate.get(Calendar.SECOND), oldReceivedDate.get(Calendar.SECOND), newMsgReceivedDate.get(Calendar.MINUTE), oldReceivedDate.get(Calendar.MINUTE), newMsgReceivedDate.get(Calendar.HOUR), oldReceivedDate.get(Calendar.HOUR))); // need to an explicit check if two dates are equal return newMsgReceivedDate.get(Calendar.SECOND) == oldReceivedDate.get(Calendar.SECOND) && newMsgReceivedDate.get(Calendar.MINUTE) == oldReceivedDate.get(Calendar.MINUTE) && newMsgReceivedDate.get(Calendar.HOUR) == oldReceivedDate.get(Calendar.HOUR) && newMsgReceivedDate.get(Calendar.DAY_OF_YEAR) == oldReceivedDate.get(Calendar.DAY_OF_YEAR) && newMsgReceivedDate.get(Calendar.YEAR) == oldReceivedDate.get(Calendar.YEAR); }