0

I was writing a purging logic from a HashSet to keep last 2 days' data :-

    while(mscDatesIterator.hasNext()) {
        String entry = (String) mscDatesIterator.next();
        Date currentDate = SystemTime.getCurrentTime();
        String currentDateString = subscriberProfile.getSubscriberID() + sdf.format(currentDate);
        Integer currentStringMonth = Integer.parseInt(currentDateString.substring(currentDateString.length() - 4, currentDateString.length() - 2));
        Integer entryStringMonth = Integer.parseInt(entry.substring(entry.length() - 4, entry.length() - 2));
        Integer currentStringDay = Integer.parseInt(currentDateString.substring(currentDateString.length() - 2, currentDateString.length()));
        Integer entryStringDay = Integer.parseInt(entry.substring(entry.length() - 2, entry.length()));
        Integer currentStringYear = Integer.parseInt(currentDateString.substring(currentDateString.length() - 8, currentDateString.length() - 4));
        Integer entryStringYear = Integer.parseInt(entry.substring(entry.length() - 8, entry.length() - 4));
        if((!currentStringYear.equals(entryStringYear)) || (!currentStringMonth.equals(entryStringMonth)) || (currentStringDay - entryStringDay > 2)) 
            mscDatesIterator.remove();
    }

This works just fine, but when I use currentStringYear != entryStringYear, it returns true even though both values are 2022. Also, if I change the dataType from class Integer to primitive int, currentStringYear != entryStringYear returns false correctly.

I don't understand this behavior, any light shed on this will be appreciated.

91StarSky
  • 482
  • 3
  • 10
  • 2
    The `java.util` Date-Time API and their formatting API, `SimpleDateFormat` are outdated and error-prone. It is recommended to stop using them completely and switch to the [modern Date-Time API](https://www.oracle.com/technical-resources/articles/java/jf14-Date-Time.html). Learn more about the modern Date-Time API from [Trail: Date Time](https://docs.oracle.com/javase/tutorial/datetime/index.html). – Arvind Kumar Avinash Dec 18 '22 at 21:15

0 Answers0