Hour comparision in 24 hour format using SimpleDateFormat overrided compareTo method
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateComparision {
public void isTimeBreached(StringBuilder breachTime){
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
Date breachDateTime = null;
Date systemDateTime = null;
try {
breachDateTime = sdf.parse(breachTime.toString());
Calendar systemCal = Calendar.getInstance();
systemCal.setTimeInMillis(System.currentTimeMillis());
systemDateTime = systemCal.getTime();
System.out.println(systemDateTime+" >> converted to >> "+sdf.format(systemDateTime));
int value = sdf.format(systemDateTime).compareTo(sdf.format(breachDateTime));
if(value <= 0){
System.out.println(sdf.format(systemDateTime)+ " is within time "+sdf.format(breachDateTime));
}else{
System.out.println(sdf.format(systemDateTime)+ " breached the time "+sdf.format(breachDateTime));
}
} catch (ParseException e) {
System.err.println("The date should be in HH:mm:ss format:"+breachTime);
e.printStackTrace();
}
}
public static void main(String[] args) {
try{
DateComparision dc = new DateComparision();
StringBuilder breachTime = new StringBuilder("15:00:00");
dc.isTimeBreached(breachTime);
}catch(Exception pe){
pe.printStackTrace();
}
}
}
output:
1) Thu Jan 01 19:00:00 CST 1970 >> converted to >> 19:00:00
19:00:00 breached the time 15:00:00
2) Changed breached time to 21
Wed Jan 30 20:17:09 CST 2013 >> converted to >> 20:17:09
20:17:09 is within time 21:00:00