91 votes

Comment obtenir la date et l'heure locales actuelles en Kotlin ?

Comment obtenir la date actuelle (jour, mois et année) et l'heure (heure, minutes et secondes) en heure locale en Kotlin ?

J'ai essayé à travers LocalDateTime.now() mais je reçois une erreur disant Call requires API Level 26 (curr min is 21) .

Comment obtenir l'heure et la date en Kotlin ?

3 votes

Pour les niveaux d'API inférieurs à 26, il suffit d'ajouter la bibliothèque ThreeTenABP à votre projet, importez org.threeten.bp.LocalDateTime et ensuite faire comme vous avez essayé : LocalDateTime.now(yourTimeZone) (Je recommande de spécifier le fuseau horaire, mais si vous ne le faites pas, vous obtiendrez le paramètre de fuseau horaire de la JVM). Pour en savoir plus, consultez cette question : Comment utiliser ThreeTenABP dans un projet Android ? .

0 votes

Vérifiez ce lien pour votre solution nécessaire : stackoverflow.com/questions/3747490/

72voto

Shan Mk Points 279

Essayez ceci :

 val sdf = SimpleDateFormat("dd/M/yyyy hh:mm:ss")
 val currentDate = sdf.format(Date())
 System.out.println(" C DATE is  "+currentDate)

0 votes

Je présume que c'est SimpleDateFormat de java.text ?

9 votes

Date est en grande partie déprécié et est en voie d'élimination progressive depuis des années. Je ne suis pas d'accord pour la recommander à un nouvel apprenant.

42voto

ephemient Points 87003

[java.util.Calendar.getInstance()](https://developer.android.com/reference/java/util/Calendar.html#getInstance()) représente l'heure actuelle en utilisant la locale et le fuseau horaire actuels.

Vous pouvez également choisir d'importer et d'utiliser Joda-Time ou l'un des systèmes de gestion de l'environnement de l'entreprise. fourches pour Android .

0 votes

Un exemple serait le bienvenu.

39voto

Phan Van Linh Points 16963

Ma méthode utils pour obtenir la date et l'heure actuelles en utilisant Calendar lorsque notre minSdkVersion < 26.

fun Date.toString(format: String, locale: Locale = Locale.getDefault()): String {
    val formatter = SimpleDateFormat(format, locale)
    return formatter.format(this)
}

fun getCurrentDateTime(): Date {
    return Calendar.getInstance().time
}

Utilisation de

import ...getCurrentDateTime
import ...toString
...
...
val date = getCurrentDateTime()
val dateInString = date.toString("yyyy/MM/dd HH:mm:ss")

3 votes

Cela devrait être la réponse appropriée : facile et propre, je l'ai implémenté comme une fonction de niveau paquet (sur les fonctions de niveau paquet : stackoverflow.com/questions/38778882/ ) pour l'atteindre de n'importe où

8voto

Nawaraj Bista Points 139

Essayez ça :

val date = Calendar.getInstance().time
val formatter = SimpleDateFormat.getDateTimeInstance() //or use getDateInstance()
val formatedDate = formatter.format(date)

Vous pouvez utiliser votre son propre modèle également, par exemple

val sdf = SimpleDateFormat("yyyy.MM.dd")
// 2020.02.02

Pour obtenir un formatage local, utilisez getDateInstance() , getDateTimeInstance() ou getTimeInstance() ou utiliser la nouvelle SimpleDateFormat(String template, Locale locale) avec par exemple Locale.US pour les dates ASCII. Les trois premières options nécessitent le niveau 29 de l'API.

5voto

J7bits Points 208

Vous pouvez obtenir l'année, le mois, le jour, etc. actuels d'une instance de calendrier.

val c = Calendar.getInstance()

val year = c.get(Calendar.YEAR)
val month = c.get(Calendar.MONTH)
val day = c.get(Calendar.DAY_OF_MONTH)

val hour = c.get(Calendar.HOUR_OF_DAY)
val minute = c.get(Calendar.MINUTE)

Si vous en avez besoin comme LocalDateTime, il suffit de le créer en utilisant les paramètres que vous avez obtenus ci-dessus

val myLdt = LocalDateTime.of(year, month, day, ... )

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X