I have a hashmap: Map dateEvent = new HashMap(); where key is a date and time and value is a string. I fill collection with data where date is in format dd.MM.yyyy HH:mm. How I can get all keys with date based on this format: dd.MM.yyyy?
This code will do the trick:
public static void findEvents(Map<Date, Event> dateEvents, Date targetDate) {
SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
String target = dateFormat.format(targetDate);
for (Map.Entry<Date, Event> entry : dateEvents.entrySet()) {
if (dateFormat.format(entry.getKey()).equals(target)) {
System.out.println("Event " + entry.getValue() + " is on the specified date");
}
}
}
The important thing here is that all dates are converted to a String with format "dd.MM.yyyy" before comparing, so any differences in hour/minute/second still match if the day is the same.
This code also demonstrates the best way (IMHO) to iterate over a map.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With