Berechnen der Tage zwischen zwei Datumsangaben in Java 8
Ich weiß es sind viele Fragen auf, SO etwa, wie zu bekommen, aber ich will und Beispiel mit Hilfe der neuen Java 8 Date api. Ich weiß auch, JodaTime-Bibliothek, aber ich will ein arbeiten ohne externe Bibliotheken.
Funktion benötigt, um sich zu beschweren, allerdings mit folgenden Einschränkungen:
- Verhindern, dass Fehler von Datum savetime
- Eingang sind zwei Datum-Objekte (ohne Zeit, ich weiß, localdatetime, aber ich muss mit Datum Instanzen)
So etwas wie dieses Beispiel?
Nicht wirklich - die Dauer ist nicht die beste Passform zu tun, dass...
Nun, es ist besser als das, was der OP hatte
Was ist es dann?
Nicht wirklich - die Dauer ist nicht die beste Passform zu tun, dass...
Nun, es ist besser als das, was der OP hatte
Was ist es dann?
DAYS.between(localDate1, localDate2)
.InformationsquelleAutor Marcos | 2014-11-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie wollen logische Kalendertagen, verwenden Sie
TAGE.zwischen()
Methode vonjava.Zeit.die zeitliche.ChronoUnit
:Wenn Sie wollen buchstäblichen 24-Stunden Tagen, (a Dauer), können Sie die
Dauer
Klasse statt:Weitere Informationen finden Sie unter dieses Dokument (und andere Dokumente re:Java 8 von Oracle).
Duration.between(today.atTime(0, 0), yesterday.atTime(0, 0)).toDays()
.-1 Dauer nicht das richtige Werkzeug, dies zu tun.
Statt
today.atTime(0, 0)
Sie tun könnentoday.atStartOfDay()
.warum nicht?
Vielleicht die -1 war ein bisschen hart, weil der code, den Sie vorschlagen funktioniert, aber die Dauer gemeint ist, die Messung der "Zeit-basiert viel Zeit". Es ist eine built-in Möglichkeit zum Messen einer Anzahl von Tagen, die nicht erforderlich ist, konvertieren von date auf datetime.
InformationsquelleAutor syntagma
Basierend auf VGR-Kommentare hier ist, was Sie verwenden können:
InformationsquelleAutor Sunil B
Können Sie
until()
:Die gotcha ich gerade erlebt mit der ersten version von
until
ist, dass es gibt eine Zeitraum - Objekt. Das wird Rückkehr eine Anzahl der Jahre/Monate/Tage zwischen zwei Datumsangaben, nicht die tatsächliche Anzahl von Tagen. Und getDays() auf die Zeit gibt nur die Tage Teil (keine Berücksichtigung der Anzahl der Jahre oder Monate), anstatt die Anzahl der Tage. Die zweite version funktioniert genau wie gewünscht erhalten Sie eine Anzahl von Tagen zwischen zwei Datumsangaben.Ist es eine komplette alternative für diese, für diese ? Da muss es Android SDk 26 und über
InformationsquelleAutor nazar_art
Können Sie
DAYS.between
ausjava.time.temporal.ChronoUnit
z.B.
InformationsquelleAutor Piotr Fryga
Die TAGE in enum java.Zeit.die zeitliche.ChronoUnit . Unten ist der Beispielcode :
Ausgabe :
*Anzahl der Tage zwischen dem start-Datum : 2015-03-01-und Ende-Datum : 2016-03-03 ist ==> 368.
**Anzahl der Tage zwischen dem start-Datum : 2016-03-03-und Ende-Datum : 2015-03-01 ist ==> -368*
InformationsquelleAutor Pradeep Padmarajaiah
Jeder wird sagen, zu verwenden, ChronoUnit.TAGE.zwischen aber, dass nur die Delegierten zu einer anderen Methode könnten Sie sich selbst nennen. So könnte man auch
firstDate.until(secondDate, ChronoUnit.DAYS)
.Den docs für beide eigentlich erwähnen beide Ansätze, und sagen, welchen man mehr lesbar.
InformationsquelleAutor nafg
Hier gehen Sie:
InformationsquelleAutor PAA
aber ChronoUnit.TAGE Anzahl Tage, die abgeschlossen von 24 Stunden.
InformationsquelleAutor Pawan
Erhalten Anzahl der Tage vor Weihnachten vom aktuellen Tag , versuchen Sie, diese
InformationsquelleAutor survivor_27
InformationsquelleAutor Mohamed.Abdo
Wenn das Ziel ist, nur um die Differenz in Tagen und seit der obigen Antworten erwähnt über das delegate-Methoden weisen darauf hin, dass einmal können auch einfach verwenden -
InformationsquelleAutor levenshtein
Ich weiß, diese Frage ist für Java 8, aber mit Java-9, die Sie nutzen könnten:
InformationsquelleAutor Xxtreem