A la suite de mes derniers billets à propos du langage de programmation Kotlin dans lesquels je présentais les 10 raisons de choisir Kotlin pour développer vos applications et comment créer votre première application avec Kotlin, je vais vous démarrer une série de tutoriels et de snippets pour vous accompagner dans la prise en main de ce langage de programmation.
Pour démarrer, nous allons nous pencher sur la gestion des dates avec les exemples suivants :
Convertir une chaîne de caractères en date
- Convertir une chaîne de caractères en date à l’aide de formateurs prédéfinis
- Convertir une chaîne de caractères en date à l’aide d’un pattern formateur
Obtenir la date et l’heure actuelles
- Obtenir la date et l’heure actuelles dans le format par défaut
- Obtenir la date et l’heure actuelles avec un pattern
- Obtenir l’heure de la date actuelle à l’aide de constantes prédéfinies
- Obtenir l’heure de la date actuelle localisée
Additionner deux dates
—
Convertir une chaîne de caractères en date
Convertir une chaîne de caractères en date à l’aide de formateurs prédéfinis
Dans ce programme, vous apprendrez à convertir les chaînes de caractères en date en utilisant le formateur.
import java.time.LocalDate
import java.time.format.DateTimeFormatter
fun main(args: Array<String>) {
// Format y-M-d or yyyy-MM-d
val string = "2017-07-25"
val date = LocalDate.parse(string, DateTimeFormatter.ISO_DATE)
println(date)
}
Lorsque vous exécutez le programme, la sortie sera :
2017-07-25
Dans le programme ci-dessus, nous avons utilisé le formatteur prédéfini ISO_DATE qui prend les chaînes de date au format 2017-07-25 ou 2017-07-25+05:45′.
La fonction parse() de LocalDate analyse la chaîne donnée en utilisant le formateur donné. Vous pouvez également supprimer le formateur ISO_DATE dans l’exemple ci-dessus et remplacer la méthode parse() par :
LocalDate date = LocalDate.parse(string, DateTimeFormatter);
Convertir une chaîne de caractères en date à l’aide d’un pattern formateur
import java.time.LocalDate
import java.time.format.DateTimeFormatter
import java.util.Locale
fun main(args: Array<String>) {
val string = "July 25, 2017"
val formatter = DateTimeFormatter.ofPattern("MMMM d, yyyy", Locale.ENGLISH)
val date = LocalDate.parse(string, formatter)
println(date)
}
Lorsque vous exécutez le programme, la sortie sera :
2017-07-25
Dans le programme ci-dessus, notre date est dans le format MMMMM j, aaaaa. Ainsi, nous créons un formateur du pattern donné.
Maintenant, nous pouvons analyser la date en utilisant la fonction LocalDate.parse() et obtenir l’objet LocalDate.
Obtenir la date et l’heure actuelles
Dans ce programme, vous apprendrez à obtenir la date et l’heure actuelles dans différents formats avec Kotlin.
Obtenir la date et l’heure actuelles dans le format par défaut
import java.time.LocalDateTime
fun main(args: Array<String>) {
val current = LocalDateTime.now()
println("Current Date and Time is: $current")
}
Lorsque vous exécutez le programme, la sortie sera :
Current Date and Time is: 2017-08-02T11:25:44.973
Dans le programme ci-dessus, nous avons défini un modèle de format Année-Mois-Jour Heures:Minutes:Secondes.millisecondes en utilisant un objet DateTimeFormatter.
Ensuite, nous avons utilisé la méthode format() de LocalDateTime pour utiliser le formateur donné. Ceci nous donne la sortie de la chaîne de caractères formatée.
Obtenir la date et l’heure actuelles avec un pattern
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
fun main(args: Array<String>) {
val current = LocalDateTime.now()
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS")
val formatted = current.format(formatter)
println("Current Date and Time is: $formatted")
}
Lorsque vous exécutez le programme, la sortie sera :
Current Date and Time is: 2017-08-02 11:29:57.401
Dans le programme ci-dessus, nous avons défini un modèle de format Année-Mois-Jour Heures:Minutes:Secondes.millisecondes en utilisant un objet DateTimeFormatter.
Ensuite, nous avons utilisé la méthode format() de LocalDateTime pour utiliser le formateur donné. Ceci nous donne la sortie de la chaîne de caractères formatée.
Obtenir l’heure de la date actuelle à l’aide de constantes prédéfinies
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
fun main(args: Array<String>) {
val current = LocalDateTime.now()
val formatter = DateTimeFormatter.BASIC_ISO_DATE
val formatted = current.format(formatter)
println("Current Date is: $formatted")
}
Lorsque vous exécutez le programme, la sortie sera :
Current Date is: 20170802
Dans le programme ci-dessus, nous avons utilisé une constante de format prédéfinie BASIC_ISO_DATE pour obtenir la date ISO actuelle en sortie.
Obtenir l’heure de la date actuelle localisée
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
import java.time.format.FormatStyle
fun main(args: Array<String>) {
val current = LocalDateTime.now()
val formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)
val formatted = current.format(formatter)
println("Current Date is: $formatted")
}
Lorsque vous exécutez le programme, la sortie sera :
Current Date is: Aug 2, 2017 11:44:19 AM
Dans le programme ci-dessus, nous avons utilisé un média de style localisé pour obtenir la date et l’heure actuelles dans le format donné. Il y a aussi d’autres styles : Complet, long et court.
Additionner deux dates
Dans cet exemple, vous apprendrez à ajouter deux dates à l’aide de Calendar.
Depuis, l’époque Java des années 1970, n’importe quelle date représentée dans un objet Date ne fonctionnera pas. Cela signifie que vos Dates commenceront à partir de 1970 et que lorsque deux objets Date sont ajoutés, la somme sera amputée de1970 années.
Donc, nous utilisons Calendar pour régler ce soucis.
import java.util.Calendar
fun main(args: Array < String > ) {
val c1 = Calendar.getInstance()
val c2 = Calendar.getInstance()
val cTotal = c1.clone() as Calendar
cTotal.add(Calendar.YEAR, c2.get(Calendar.YEAR))
cTotal.add(Calendar.MONTH, c2.get(Calendar.MONTH) + 1) // Zero-based months
cTotal.add(Calendar.DATE, c2.get(Calendar.DATE))
cTotal.add(Calendar.HOUR_OF_DAY, c2.get(Calendar.HOUR_OF_DAY))
cTotal.add(Calendar.MINUTE, c2.get(Calendar.MINUTE))
cTotal.add(Calendar.SECOND, c2.get(Calendar.SECOND))
cTotal.add(Calendar.MILLISECOND, c2.get(Calendar.MILLISECOND))
println("${c1.time} + ${c2.time} = ${cTotal.time}")
}
J’espère que ces exemples vous aideront à mieux comprendre à mieux gérer les dates et le temps avec Kotlin. N’hésitez pas à ajouter vos commentaires ou questions ci-dessous, je me ferai un plaisir d’y répondre.