Android Get Current Timestamp en Kotlin : du débutant au professionnel
\n\nAvez-vous déjà réfléchi à la façon dont votre smartphone connaît l'heure exacte lorsque vous envoyez un message, prenez une photo ou lancez un minuteur ? Au cœur de cette magie se trouve le timestamp — une marque numérique qui enregistre l'instant avec une précision à la milliseconde. Si vous développez une application Android en Kotlin, tôt ou tard vous devrez faire face à la tâche : "Android get current timestamp".
\n\nCette question est l'une des plus populaires sur Stack Overflow (des milliers de vues !). Et ce n'est pas étonnant : tout semble simple, mais en pratique, les débutants se noient dans la confusion entre millisecondes, secondes, fuseaux horaires et classes obsolètes. Dans cet article, nous allons passer en revue toutes les façons d'obtenir le timestamp actuel en Android avec Kotlin — des méthodes de base aux plus avancées. Vous apprendrez quelle méthode choisir pour votre tâche et comment éviter les erreurs typiques.
\n\nQu'est-ce qu'un timestamp et pourquoi en a-t-on besoin en Android ?
\n\nUn timestamp (marque temporelle) est un nombre qui représente la quantité de temps écoulée depuis un point de référence spécifique. Le plus souvent, on utilise le timestamp Unix — le nombre de millisecondes (ou de secondes) depuis le 1er janvier 1970 à 00:00:00 UTC. Pourquoi en a-t-on besoin en Android ?
\n\n- \n
- Journalisation des événements — enregistrement des actions de l'utilisateur. \n
- Synchronisation des données — envoi de l'heure au serveur. \n
- Mise en cache — vérification de l'obsolescence des données. \n
- Animations et minuteurs — calcul du temps écoulé. \n
- Bases de données — tri des enregistrements par heure. \n
Dans le développement Android en Kotlin, vous disposez de plusieurs outils pour obtenir un timestamp. Examinons-les du plus simple au plus complexe.
\n\nMéthode 1 : System.currentTimeMillis() — le classique
\n\nLa façon la plus simple et la plus rapide d'obtenir le timestamp actuel en millisecondes est d'utiliser System.currentTimeMillis(). Cette méthode existe en Java et est entièrement disponible en Kotlin.
val currentTimestampMillis = System.currentTimeMillis()\nprintln("Timestamp actuel (ms) : $currentTimestampMillis")\n\nAvantages :
\n- \n
- Vitesse fulgurante (appel natif). \n
- Ne nécessite pas d'importations supplémentaires. \n
- Fonctionne sur toutes les versions d'Android. \n
Inconvénients :
\n- \n
- Ne renvoie que des millisecondes. \n
- Lié à l'heure système de l'appareil (l'utilisateur peut la modifier). \n
- Ne tient pas compte des fuseaux horaires — c'est juste un nombre. \n
Cette méthode est idéale pour mesurer des intervalles (par exemple, le temps d'exécution du code) ou lorsque vous avez besoin d'un nombre rapide pour une comparaison.
\n\nMéthode 2 : Instant.now() — l'approche moderne (Java 8+)
\n\nÀ partir du niveau d'API 26 (Android 8.0) et plus, vous pouvez utiliser la classe java.time.Instant. Cela fait partie de l'API de temps moderne qui résout de nombreux problèmes des anciennes classes.
import java.time.Instant\n\nval instant = Instant.now()\nval timestampMillis = instant.toEpochMilli()\nval timestampSeconds = instant.epochSecond\n\nprintln("Instant : $instant")\nprintln("Timestamp (ms) : $timestampMillis")\nprintln("Timestamp (sec) : $timestampSeconds")\n\nAvantages :
\n- \n
- API propre et moderne. \n
- Facile à convertir en d'autres formats. \n
- Fonctionne avec UTC par défaut. \n
Inconvénients :
\n- \n
- Nécessite l'API 26+ (pour les anciens appareils, il faut le desugaring ou la bibliothèque ThreeTenABP). \n
Si votre application cible les appareils modernes, Instant.now() est le meilleur choix pour obtenir un timestamp.
\n\nMéthode 3 : Calendar — obsolète mais toujours utilisé
\n\nLa classe java.util.Calendar est une ancienne méthode qui est encore