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.
(À propos, le 23/09/2008 est le jour où Android 1.0 est sorti)
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.
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.
Vous pouvez maintenant revenir à Unix Time ... vous n'avez pas à le faire! Je vous remercie pour votre travail acharné.
Recommended Posts