Travail avec les dates en Kotlin : aperçu des bibliothèques et outils
Le travail avec les dates et l'heure est l'une des tâches clés dans le développement moderne. Kotlin, en tant que langage moderne, offre plusieurs moyens puissants de gérer les dates. Dans cet article, nous examinerons les principales bibliothèques et approches qui vous aideront à travailler efficacement avec les dates dans vos projets Kotlin, y compris le développement Android et les applications serveur.
1. Bibliothèque standard java.time (Java 8+)
Depuis Java 8, les développeurs ont accès à une API entièrement repensée pour travailler avec les dates — java.time. Comme Kotlin est entièrement compatible avec Java, vous pouvez utiliser cet outil puissant directement. C'est la méthode la plus courante pour les applications serveur en Kotlin.
Classes principales :
LocalDate— date sans heure (année, mois, jour)LocalTime— heure sans dateLocalDateTime— date et heure sans fuseau horaireZonedDateTime— date et heure avec fuseau horaireInstant— moment dans le temps en UTCDurationetPeriod— pour travailler avec des intervalles
import java.time.LocalDateimport java.time.LocalDateTimeimport java.time.format.DateTimeFormatter
fun main() { // Date actuelle val today = LocalDate.now() println("Aujourd'hui : $today")
// Création d'une date spécifique val birthDate = LocalDate.of(1990, 5, 15) println("Date de naissance : $birthDate")
// Formatage val formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy") val formatted = today.format(formatter) println("Date formatée : $formatted")
// Analyse d'une chaîne val parsedDate = LocalDate.parse("2024-01-01") println("Date analysée : $parsedDate")
// Travail avec la date et l'heure val now = LocalDateTime.now() println("Maintenant : $now")}2. kotlinx-datetime — bibliothèque officielle de JetBrains
Pour les projets utilisant Kotlin Multiplatform, la bibliothèque standard kotlinx-datetime est le meilleur choix. Elle fournit une API unifiée pour toutes les plateformes (JVM, JS, Native, Android).
Ajout de la dépendance (build.gradle.kts) :
dependencies { implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.6.1")}Fonctionnalités principales :
Instant— moment dans le tempsLocalDateTime— date et heure localesLocalDate— date localeLocalTime— heure localeTimeZone— fuseaux horairesDateTimePeriod— période de temps
import kotlinx.datetime.*
fun main() { // Date et heure actuelles val now = Clock.System.now() println("Moment actuel : $now")
// Conversion en composants locaux val localDateTime = now.toLocalDateTime(TimeZone.currentSystemDefault()) println("Heure locale : $localDateTime")
// Création d'une date val date = LocalDate(2024, 12, 25) println("Date : $date")
// Formatage val formatted = localDateTime.toString() println("Représentation textuelle : $formatted")
// Analyse val parsed = Instant.parse("2024-01-01T12:00:00Z") println("Instant analysé : $parsed")
// Travail avec les fuseaux horaires val moscowTime = now.toLocalDateTime(TimeZone.of("Europe/Moscow")) println("Heure de Moscou : $moscowTime")}3. ThreeTenABP — pour la rétrocompatibilité Android
Si votre application prend en charge une API Android inférieure à 26 (Android 8.0), vous ne pouvez pas utiliser java.time directement. Dans ce cas, la bibliothèque ThreeTenABP<
Aussi dans la bibliothèque
once_cell Rust : guide complet avec exemples
Files d'attente de tâches pour PHP : RabbitMQ, Gearman et PhpAmqpLib
mapstructure Go : guide complet avec exemples pratiques