Travailler avec des dates dans Kotlin

Travailler avec des dates à Kotlin

1. introduction

Dans ce rapide didacticiel, nous allons découvrir comment utiliser les dates dans Kotlin.

Nous examinerons les opérations liées àDate- telles que la création, le formatage et la manipulation des dates.

2. Créer une date

Le moyen le plus rapide de créer un objetDate est d'utiliser la méthodeparse() deLocalDate:

var date = LocalDate.parse("2018-12-12")

La méthodeparse() utilise par défaut lesstandard date formatyyyy-MM-dd.

Nous pouvons également passer notre propre format pour analyser une chaîne de date:

var formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy")
var date = LocalDate.parse("31-12-2018", formatter)

Et, si nous avons besoin de plus de contrôle, nous pouvonsexplicitly specify the year, day and month using LocalDate‘s of() method:

var date = LocalDate.of(2018, 12, 31)

3. Formatage d'une date

Voyons ensuite comment nous pouvons mettre en forme nos objets de date enStrings.

La manière par défaut de formater la date en utilisant le format par défaut enKotlin  est d'appeler lestoString() method.

Créons une date

var date = LocalDate.parse("2018-12-31")

et regardez la sortie par défaut de l'utilisation detoString:

assertThat(date.toString()).isEqualTo("2018-12-31")

Cela semble lisible car le format de sortie estyyyy-MM-dd, mais encore une fois, nous pouvons avoir besoin de formater la date dans des formats personnalisés en fonction de nos cas d'utilisation.

To format our date to different formats we can use LocalDate‘s format() method et fournissez-lui notre format personnalisé en utilisantDateTimeFormatter:

var formatter = DateTimeFormatter.ofPattern("dd-MMMM-yyyy")
var formattedDate = date.format(formatter)

Ceci sort une date bien formatée:

assertThat(formattedDate).isEqualTo("31-December-2018")

4. Extraction de composants de date

LocalDate propose de nombreuses méthodes que nous pouvons utiliser pour extraire des composants spécifiques deDate.

Certains d'entre eux sont assez triviaux, comme l'extraction de l'année, du mois ou du jour à partir d'unDate:

var date = LocalDate.parse("2018-12-31")
assertThat(date.year).isEqualTo(2018)
assertThat(date.month).isEqualTo(Month.DECEMBER)
assertThat(date.dayOfMonth).isEqualTo(31)

Nous pouvons également extraire d'autres informations comme era, dayOfTheWeek ou dayOfTheMonth:

assertThat(date.era.toString()).isEqualTo("CE")
assertThat(date.dayOfWeek).isEqualTo(DayOfWeek.MONDAY)
assertThat(date.dayOfYear).isEqualTo(365)

5. Travailler avecPeriod

Enfin, voyons comment travailler avecPeriods dans Kotlin.

Les périodes représentent une distance sur la chronologie. Nous pouvons créer unPeriod en utilisant la méthode de fabrique de classe dePeriod:

var period = Period.of(1, 2, 3)

Cela crée unPeriod de 1 an, 2 mois et 3 jours.

Pour ajouter cePeriod à une date existante, nous utilisons la méthodeLocalDateplus() :

var date = LocalDate.of(2018, 6, 25)
var modifiedDate = date.plus(period)

Cela ajoutera 1 an, 2 mois et 3 jours à la date donnée et produira la date modifiée:

assertThat(modifiedDate).isEqualTo("2019-08-28")

De même, on peut soustraire unPeriod  à une date donnée:

var date = LocalDate.of(2018, 6, 25)
var modifiedDate = date.minus(period)

Et comme prévu, la date modifiée sera:

assertThat(modifiedDate).isEqualTo("2017-04-22")

De plus, nous pouvons utiliser des périodes pour représenter la distance entre deux dates.

Supposons que nous ayons deux dates, exactement à 6 mois l'une de l'autre:

var date1 = LocalDate.parse("2018-06-25")
var date2 = LocalDate.parse("2018-12-25")

Maintenant, nous pouvons représenter la distance entre ces deux dates en utilisant la méthodebetween de Period:

var period = Period.between(date1, date2)

La variableperiod produira les: suivants

assertThat(period.toString()).isEqualTo("P6M")

P signifiePeriod et6M means 6 mois.

6. Conclusion

Dans cet article, nous avons appris les bases du travail avec Dates dans Kotlin.

Nous avons examiné comment créer des instances de date à l'aide de différentes méthodes et comment formater des objets de date en textes lisibles.

De plus, nous avons cherché à extraire des composants à partir d'objetsDate et enfin comment travailler avecPeriods dans Kotlin.

Le code utilisé dans ce tutoriel est disponibleover on Github.