[JAVA] [Android] Calculez facilement la différence entre deux dates

Aperçu

Par exemple, entre ** 2008/9/23 ** et ** aujourd'hui **, ** combien de jours? Combien de mois? combien d'années? ** **

Si vous essayez de faire quelque chose comme ça en utilisant la date ou le calendrier de Java / Kotlin, la date sera convertie en UnixTime, soustraite, puis analysée à nouveau.

«LocalDate» est utile dans un tel cas, mais il est difficile avec minSdk26 ou supérieur. C'est le problème à résoudre cette fois. スクリーンショット 2019-04-30 0.13.03.png

(À propos, le 23/09/2008 est le jour où Android 1.0 est sorti)

Solution

Ce dieu Jake Wharton a créé cette bibliothèque de backport pour Android.

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

En utilisant cela, vous pouvez utiliser LocalDate sans vous soucier de minSdk.

Comment utiliser

Tout d'abord, écrivez ce qui suit dans Gradle.

app/build.gradle


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

Par conséquent java.time.LocalDate En plus de la LocalDate qui existait dans org.threeten.bp.LocalDate Est maintenant disponible. Utilisez ceci.

Par exemple, vérifions la différence de jours, mois et années entre le 23/09/2008 et aujourd'hui (écrit: 30/04/2019).

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 au lieu du mois.threeten.bp.Remarque à l'aide du mois

Il s'est avéré que 10 ans, 7 mois et 7 jours se sont écoulés depuis la première version d'Android.

L'utilisation de LocalDate est fondamentalement la même que la LocalDate par défaut sur Java8, vous devriez donc y regarder.

Écrivez si vous vous souvenez --java.time.LocalDate

Vous pouvez maintenant revenir à Unix Time ... vous n'avez pas à le faire! Je vous remercie pour votre travail acharné.

Recommended Posts

[Android] Calculez facilement la différence entre deux dates
Calculez la distance entre la latitude et la longitude de deux points
Calculer la différence entre les nombres dans un tableau Ruby
Jeu de recherche d'erreur Android
[Android, Java] Méthode pratique pour calculer la différence en jours
Trouvez la différence entre les types de liste
Trouvez l'angle entre deux vecteurs
[Android] Différence entre finish () et return;
Sortie de la différence entre chaque champ de deux objets en Java
[Android, Java] Méthode pour trouver la date écoulée à partir de deux dates
À propos de la différence entre irb et pry
[Java] Comprendre la différence entre List et Set
[iOS] Comprendre la différence entre le cadre et les limites
[Rails / Active Record] À propos de la différence entre créer et créer!
Comprenez la différence entre les classes abstraites et les interfaces!
Quelle est la différence entre SimpleDateFormat et DateTimeFormatter? ??
[Ruby] J'ai réfléchi à la différence entre each_with_index et each.with_index
[Rails] J'ai étudié la différence entre les ressources et les ressources
[Java] Je souhaite calculer la différence par rapport à la date
Quelle est la différence entre System Spec et Feature Spec?
Concernant la différence entre les trois Timeouts dans HttpClient de Java
Différences entre les classes et les instances dans Ruby
[Rails] Quelle est la différence entre la redirection et le rendu?
Comparez la différence entre dockerfile avant et après docker-slim
[JAVA] Quelle est la différence entre interface et abstract? ?? ??
Quelle est la différence entre ignorer et en attente? [RSpec]
[Swift] UITextField m'a appris la différence entre nil et ""
Je vais expliquer la différence entre le développement d'applications Android et le développement d'applications iOS du point de vue des ingénieurs iOS