[JAVA] [Android] Berechnen Sie einfach die Differenz zwischen zwei Daten

Überblick

Zum Beispiel zwischen ** 2008/9/23 ** und ** heute **, ** wie viele Tage? Wie viele Monate? wie viele Jahre? ** ** **

Wenn Sie versuchen, so etwas mit Java / Kotlins Datum oder Kalender zu tun, wird das Datum in UnixTime konvertiert, subtrahiert und dann erneut analysiert.

LocalDate ist in einem solchen Fall nützlich, aber mit minSdk26 oder höher ist es schwierig. Dies ist das Problem, das diesmal gelöst werden muss. スクリーンショット 2019-04-30 0.13.03.png

(Übrigens ist der 23.9.2008 der Tag, an dem Android 1.0 herauskam)

Lösung

Dieser Gott von Jake Wharton hat diese Backport-Bibliothek für Android erstellt.

ThreeTen Android Backport https://github.com/JakeWharton/ThreeTenABP

Auf diese Weise können Sie LocalDate verwenden, ohne sich um minSdk kümmern zu müssen.

Wie benutzt man

Schreiben Sie zunächst Folgendes in Gradle.

app/build.gradle


dependencies {
    ...
    implementation 'com.jakewharton.threetenabp:threetenabp:1.2.0'
}

Als Ergebnis java.time.LocalDate Zusätzlich zu dem LocalDate, das in vorhanden war org.threeten.bp.LocalDate Ist nun verfügbar. Benutze das.

Lassen Sie uns zum Beispiel die Differenz Tage, Monate und Jahre zwischen 2008/9/23 und heute überprüfen (geschrieben: 2019/4/30).

val androidFirstRelease = LocalDate.of(2008, Month.SEPTEMBER, 23)
val today = LocalDate.now()  // 2019/4/30
val period = Period.between(androidFirstRelease, today) 

> period.days -> 7
> period.months -> 7
> period.years -> 10

// java.time.Org statt Monat.threeten.bp.Beachten Sie mit Monat

Es stellte sich heraus, dass seit der ersten Veröffentlichung von Android 10 Jahre, 7 Monate und 7 Tage vergangen sind.

Die Verwendung von LocalDate entspricht im Wesentlichen der Verwendung von LocalDate unter Java8, daher sollten Sie dort nachsehen.

Schreiben Sie, wenn Sie sich an --java.time.LocalDate erinnern

Jetzt können Sie wieder zu Unix Time wechseln ... Sie müssen es nicht tun! Danke für deine harte Arbeit.

Recommended Posts

[Android] Berechnen Sie einfach die Differenz zwischen zwei Daten
Berechnen Sie den Abstand zwischen Breiten- und Längengrad zweier Punkte
Berechnen Sie die Differenz zwischen Zahlen in einem Ruby-Array
Android-Spiel zur Fehlersuche
[Android, Java] Praktische Methode zur Berechnung der Differenz in Tagen
Finden Sie den Unterschied zwischen Listentypen
Finden Sie den Winkel zwischen zwei Vektoren
[Android] Unterschied zwischen finish () und return;
Geben Sie die Differenz zwischen jedem Feld zweier Objekte in Java aus
[Android, Java] Methode zum Ermitteln des abgelaufenen Datums aus zwei Daten
Über den Unterschied zwischen irb und pry
[Java] Verstehe den Unterschied zwischen List und Set
[iOS] Verstehe den Unterschied zwischen Frame und Grenzen
[Rails / Active Record] Über den Unterschied zwischen create und create!
Verstehe den Unterschied zwischen abstrakten Klassen und Schnittstellen!
Was ist der Unterschied zwischen SimpleDateFormat und DateTimeFormatter? ??
[Ruby] Ich habe über den Unterschied zwischen each_with_index und each.with_index nachgedacht
[Rails] Ich habe den Unterschied zwischen Ressourcen und Ressourcen untersucht
[Java] Ich möchte die Differenz zum Datum berechnen
Was ist der Unterschied zwischen Systemspezifikation und Funktionsspezifikation?
In Bezug auf den Unterschied zwischen den drei Timeouts in HttpClient von Java
Unterschiede zwischen Klassen und Instanzen in Ruby
[Rails] Was ist der Unterschied zwischen Redirect und Rendering?
Vergleichen Sie den Unterschied zwischen Docker-Datei vor und nach Docker-Slim
[JAVA] Was ist der Unterschied zwischen Schnittstelle und Zusammenfassung? ?? ??
Was ist der Unterschied zwischen Überspringen und Ausstehend? [RSpec]
[Swift] UITextField hat mir den Unterschied zwischen Null und "" beigebracht.
Ich werde den Unterschied zwischen der Entwicklung von Android-Anwendungen und der Entwicklung von iOS-Anwendungen aus der Sicht von iOS-Ingenieuren erläutern