Arbejde med datoer i Kotlin

1. Introduktion

I denne hurtige vejledning lærer vi om at arbejde med datoer i Kotlin.

Vi kigger nærmere på Dato-relaterede operationer såsom oprettelse, formatering og manipulation af datoer.

2. Oprettelse af en dato

Den hurtigste måde at oprette en Dato objekt bruger LocalDate'S parse () metode:

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

Det parse () metode bruger som standard standarddatoformatet åååå-MM-dd.

Vi kan også videregive vores eget format til at analysere en datostreng:

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

Og hvis vi har brug for mere kontrol, kan vi specifikt angive år, dag og måned ved brug af LocalDate'S af() metode:

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

3. Formatering af en dato

Lad os derefter se på, hvordan vi kan formatere vores datoobjekter tilbage til Strenge.

Standardformatet for formatering af dato ved hjælp af standardformatet i Kotlin påberåber sig toString () metode.

Lad os oprette en dato

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

og se på standardoutput for brug toString:

assertThat (date.toString ()). er EqualTo ("2018-12-31")

Dette ser læsbart ud, da outputformatet er åååå-MM-dd, men igen skal vi muligvis formatere datoen til brugerdefinerede formater afhængigt af vores brugssager.

For at formatere vores dato til forskellige formater, vi kan bruge LocalDate'S format() metode og levere det vores brugerdefinerede format ved hjælp af DateTimeFormatter:

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

Dette udsender en pænt formateret dato:

assertThat (formattedDate) .isEqualTo ("31. december 2018")

4. Udpakning af dato komponenter

LocalDate giver mange metoder, som vi kan bruge til at udtrække specifikke komponenter fra Dato.

Nogle af disse er ganske trivielle, såsom at udtrække året, måneden eller dagen fra en Dato:

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

Vi kan også udtrække andre oplysninger som f.eksra, dayOfTheWeek eller dayOfTheMonth:

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

5. Arbejde med Periode

Lad os endelig undersøge at arbejde med Perioder i Kotlin.

Perioder repræsenterer en afstand på tidslinjen. Vi kan oprette en Periode ved brug af Periode'S klasse fabriksmetode:

var periode = Periode. af (1, 2, 3)

Dette skaber en Periode på 1 år, 2 måneder og 3 dage.

For at tilføje dette Periode til en eksisterende dato bruger vi LocalDate'S plus() metode:

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

Dette tilføjer 1 år, 2 måneder og 3 dage til den givne dato og producerer den ændrede dato:

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

På samme måde kan vi trække a Periode fra en given dato:

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

Og som forventet vil den ændrede dato være:

assertThat (modifiedDate) .isEqualTo ("22.04.2017")

Vi kan også bruge perioder til at repræsentere afstanden mellem to datoer.

Lad os antage, at vi har to datoer, nøjagtigt 6 måneder fra hinanden:

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

Nu kan vi repræsentere afstanden mellem disse to datoer ved hjælp af Periodes mellem metode:

var periode = Periode. imellem (dato1, dato2)

Det periode variabel producerer følgende:

assertThat (period.toString ()). er EqualTo ("P6M")

P står for Periode og 6M betyder 6 måneder.

6. Konklusion

I denne artikel har vi lært det grundlæggende i, hvordan man arbejder med datoer i Kotlin.

Vi har undersøgt, hvordan man opretter datoinstanser ved hjælp af forskellige metoder, og hvordan man formaterer datoobjekter tilbage til læsbare tekster.

Desuden undersøgte vi at udvinde komponenter fra Dato objekter og endelig hvordan man arbejder med Perioder i Kotlin.

Koden, der bruges i denne vejledning, er tilgængelig på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found