Si tiene cadenas, debe analizarlas en java.util.Date usando java.text.SimpleDateFormat. Algo así como:
java.text.DateFormat df = new java.text.SimpleDateFormat("hh:mm:ss");
java.util.Date date1 = df.parse("18:40:10");
java.util.Date date2 = df.parse("19:05:15");
long diff = date2.getTime() - date1.getTime();
Aquí diff es el número de milisegundos transcurridos 18:40:10-19:05:15.
EDIT 1:
encontrado un método en línea para esto (en http://www.javaworld.com/javaworld/jw-03-2001/jw-0330-time.html?page=2):
int timeInSeconds = diff/1000;
int hours, minutes, seconds;
hours = timeInSeconds/3600;
timeInSeconds = timeInSeconds - (hours * 3600);
minutes = timeInSeconds/60;
timeInSeconds = timeInSeconds - (minutes * 60);
seconds = timeInSeconds;
EDIT 2:
Si desea como una cadena (esta es una manera descuidada, pero funciona):
String diffTime = (hours<10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds) + " h";
Datos 3:
Si desea que los milisegundos a hacer esto
long timeMS = diff % 1000;
A continuación, puede dividir que por 1000 para obtener la parte fraccionaria de sus segundos.
Aham vi ejemplos como ese pero nuevamente necesito el resultado como 01: 10.34 h, aquí obtengo el resultado en milisegundos y necesito más matemáticas para obtener el resultado deseado, ¿hay la solución más simple? – Nezir
Ver mi edición superior: – jcb
¿Cómo va a obtener milisegundos en su resultado si su tiempo solo está registrando horas, minutos y segundos? – jcb