Hi i am trying to compare time ranges,My requirement is when i select time from time-picker dialog it should be under given time ranges for this i wrote below code this is working when i not select 12 or 00 from time picker dialog
start time:06:00 end time:23:00 selected time from time picker dialog:12:23
above timing not suitable for below code can some one help me please
String pattern = "hh:mm";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
Date date1 = sdf.parse(startTime);
Date date2 = sdf.parse(endTime);
Date date3 = sdf.parse(selectedTime);
if (((date3.after(date1) || date3.equals(date1)) && (date3.before(date2) || date3.equals(date2)))) {
}
else {
Toast.makeText(context, "Pickup time should be open and close timings", Toast.LENGTH_SHORT).show();
}
You can use code below .
String pattern = "HH:mm";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
try {
Date date1 = sdf.parse(startTime);
Date date2 = sdf.parse(endTime);
Date date3 = sdf.parse(selectedTime);
if (date3.compareTo(date1) >= 0 && date3.compareTo(date2) <= 0) {
// Do your stuff
} else {
// Wrong time
}
} catch (Exception e) {
e.printStackTrace();
}
h represents Hour in am/pm (1-12)
H represents Hour in day (0-23)
Your date is in 24 hour formate so you should use H instead of h.