Ich habe versucht, den Unterschied zwischen zwei Daten zu berechnen, und ich bemerkte eine Sache. Wenn nur die Tage berechnet werden, ist der Beginn der Sommerzeit in das Intervall eingeschlossen, so dass das Ergebnis mit 1 Tag kürzer ist.java.util.Date Differenz in Tagen berechnen
Um genaue Ergebnisse zu erhalten, muss auch der Stundenwert berücksichtigt werden.
Zum Beispiel:
SimpleDateFormat format = new SimpleDateFormat("MM-dd-yyyy");
Date dfrom = format.parse("03-29-2015");
Date dto = format.parse("03-30-2015");
long diff = dto.getTime() - dfrom.getTime();
System.out.println(diff);
System.out.println("Days: "+diff/(24 * 60 * 60 * 1000));
System.out.println("Hours: "+diff/(60 * 60 * 1000) % 24);
Ausgang:
82800000
Days: 0
Hours: 23
Hat jemand eine bessere Lösung?
Können Sie stattdessen java.time (Java 8) oder Joda Time verwenden? Beides wird das Ganze viel einfacher machen. –
Mögliches Duplikat von [Berechnung der Differenz zwischen zwei Java-Datumsinstanzen] (http://stackoverflow.com/questions/1555262/calculating-the-difference-between-two-java-date-instances) – Tom
Die Ursache ist Ihre Annahme in Zeile 6, dass jeder Tag 24 Stunden hat, wenn Sie bereits wissen, dass das Intervall, das Sie messen, einen Tag enthält, der nur 23 Stunden lang ist. –