können Sie JodaTime verwenden, wenn Sie nicht JDK 8 verwenden, aber mit JDK 8 Sie so etwas schreiben kann:
public static void main(String[] args) {
LocalDateTime from = LocalDateTime.of(2017, 2, 5, 11, 18, 0);
LocalDateTime to = LocalDateTime.of(2017, 2, 5, 20, 20, 0);
long seconds = ChronoUnit.SECONDS.between(from, to);
System.out.println(String.format("%d:%02d:%02d", seconds/3600, (seconds % 3600)/60, (seconds % 60)));
}
Der Ausgang wird sein: 9:02:00
Um die Differenz zwischen zwei Local könnten Sie die Dauer Klasse verwenden, aber es gibt keine Formatierer für die es in JDK 8, so dass, wenn Sie dieses spezielle Ausgabeformat benötigen, dann werden Sie entweder eine 3rd-Party-Bibliothek verwenden oder eigene Formatter schreiben wie die oben im Beispiel.
Um eine Dauer verwenden Sie schreiben können:
public static void main(String[] args) {
LocalDateTime from = LocalDateTime.of(2017, 2, 5, 11, 18, 0);
LocalDateTime to = LocalDateTime.of(2017, 2, 5, 20, 20, 0);
Duration duration = Duration.between(from, to);
long seconds = duration.getSeconds();
System.out.println(String.format("%d:%02d:%02d", s/3600, (s % 3600)/60, (s % 60)));
}
Cheers, A.
Nun du hast Code habe die Stunden zu arbeiten ...Was hast du * für die Minuten versucht? (Tipp: teile nicht so oft durch 60 ...) –
Warte, du hast deine Zeit in 'h1':' m1' und 'h2':' m2' also warum benutzt du diesen Wert nicht, um zu tun Die Mathematik ? – AxelH
gut ich versuchte und bekam die Mathematik falsch an der ersten Stelle @AxelH, deshalb auf dieses Format – Saurabh