Wenn Sie Zeichenfolgen haben, müssen Sie sie mit java.text.SimpleDateFormat in eine java.util.Date analysieren. Etwas wie:
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();
Hier diff ist die Anzahl der Millisekunden verstrichen 18.40.10 bis 19.05.15.
EDIT 1:
ein Verfahren online diese gefunden (bei 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:
Wenn Sie es als String wollen (dies eine schlampige Art und Weise ist, aber es funktioniert):
String diffTime = (hours<10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds) + " h";
EDIT 3:
Wenn Sie die Millisekunden nur wollen, tun dies
long timeMS = diff % 1000;
Sie können dann, dass durch 1000 teilen den Bruchteil Ihrer Sekunden zu erhalten.
Aham sah ich Proben wie das aber wieder brauche ich Ergebnis als 01: 10.34 h, hier bekomme ich das Ergebnis in Millisekunde und brauche mehr Mathematik um das gewünschte Ergebnis zu bekommen, gibt es einfachste Lösung? – Nezir
Siehe meine Bearbeitung oben: – jcb
Wie werden Sie Millisekunden in Ihrem Ergebnis erhalten, wenn Ihre Zeit nur Stunden, Minuten und Sekunden aufzeichnet? – jcb