Se si dispone di stringhe è necessario analizzarle in un java.util.Date utilizzando java.text.SimpleDateFormat. Qualcosa di simile:
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();
Ecco diff è il numero di millisecondi trascorsi 18:40:10-19:05:15.
EDIT 1:
trovato un metodo online per questo (a 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:
Se si desidera come una stringa (questo è un modo sciatto, ma funziona):
String diffTime = (hours<10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds) + " h";
EDIT 3:
Se si desidera che i millisecondi solo fare questo
long timeMS = diff % 1000;
È quindi possibile dividere che per 1000 per ottenere la parte frazionaria di vostri secondi.
Aham ho visto campioni del genere, ma ancora una volta ho bisogno di risultato come 01: 10.34 h, qui ottengo risultato in millisecondi e ho bisogno di più matematica per ottenere risultato desiderato, è la soluzione più semplice? – Nezir
Vedere la mia modifica sopra: – jcb
Come farai a ottenere millisecondi nel risultato se il tuo tempo è solo la registrazione di ore, minuti e secondi? – jcb