You can use java.text.SimpleDateFormat and java.util.concurrent.TimeUnit to help you parse, compare, format to the desired format.
SimpleDateFormat format = new SimpleDateFormat("HH:mm");
Date date1 = format.parse(StartTimes[i]);
Date date2 = format.parse(EndTimes[i]);
long millis = date2.getTime() - date1.getTime();
String hourminute = String.format("%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),
TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)));
System.out.println(hourminute);
The complete code could be something like this:
import java.text.SimpleDateFormat;
import java.util.concurrent.TimeUnit;
import java.util.Date;
class TimeCompare
{
public static void main (String[] args) throws java.lang.Exception
{
String[] StartTimes = {"10:00", "7:00"};
String[] EndTimes = {"12:00", "14:56"};
for (int i=0; i<StartTimes.length; i++){
if (StartTimes!=null && StartTimes.length>0 && EndTimes!=null &&EndTimes.length>0){
SimpleDateFormat format = new SimpleDateFormat("HH:mm");
Date date1 = format.parse(StartTimes[i]);
Date date2 = format.parse(EndTimes[i]);
long millis = date2.getTime() - date1.getTime();
String hourminute = String.format("%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),
TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)));
System.out.println(hourminute);
}
}
}
}
sources:
How to calculate time difference in java?
How to convert milliseconds to "hh:mm:ss" format?