Arbeide med datoer i Kotlin
1. Introduksjon
I denne raske opplæringen lærer vi om å jobbe med datoer i Kotlin.
Vi skal se på det Dato-relaterte operasjoner som å lage, formatere og manipulere datoer.
2. Opprette en dato
Den raskeste måten å lage en Dato objektet bruker LocalDate‘S analysere () metode:
var date = LocalDate.parse ("12-12-2018")
De analysere () metoden som standard bruker standard datoformat åååå-MM-dd.
Vi kan også sende vårt eget format for å analysere en datastreng:
var formatter = DateTimeFormatter.ofPattern ("dd-MM-yyyy") var date = LocalDate.parse ("31-12-2018", formatter)
Og hvis vi trenger mer kontroll, kan vi spesifiser spesifikk år, dag og måned ved hjelp av LocalDate‘S av() metode:
var date = LocalDate.of (2018, 12, 31)
3. Formatering av en dato
La oss deretter se på hvordan vi kan formatere datoobjektene våre tilbake til Strenger.
Standard formatering av dato ved bruk av standardformat i Kotlin påkaller toString () -metoden.
La oss lage en dato
var date = LocalDate.parse ("2018-12-31")
og se på standardutgangen for bruk toString:
assertThat (date.toString ()). isEqualTo ("2018-12-31")
Dette ser lesbart ut som utdataformatet er åååå-MM-dd, men igjen, vi kan trenge å formatere datoen til tilpassede formater, avhengig av brukssakene våre.
For å formatere datoen vår til forskjellige formater vi kan bruke LocalDate‘S format() metode og levere det vårt tilpassede format ved hjelp av DateTimeFormatter:
var formatter = DateTimeFormatter.ofPattern ("dd-MMMM-åååå") var formattedDate = date.format (formatter)
Dette gir en pent formatert dato:
assertThat (formattedDate) .isEqualTo ("31. desember 2018")
4. Pakke ut datakomponenter
LocalDate gir mange metoder som vi kan bruke for å trekke ut spesifikke komponenter fra Dato.
Noen av disse er ganske trivielle, for eksempel å trekke ut år, måned eller dag 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å trekke ut annen informasjon som era, dayOfTheWeek eller dayOfTheMonth:
assertThat (date.era.toString ()). isEqualTo ("CE") assertThat (date.dayOfWeek) .isEqualTo (DayOfWeek.MONDAY) assertThat (date.dayOfYear) .isEqualTo (365)
5. Arbeide med Periode
Til slutt, la oss se på å jobbe med Perioder i Kotlin.
Perioder representerer en avstand på tidslinjen. Vi kan lage en Periode ved hjelp av Periode'S klasse fabrikk metode:
var periode = Periode. av (1, 2, 3)
Dette skaper en Periode på 1 år, 2 måneder og 3 dager.
For å legge til dette Periode til en eksisterende dato bruker vi LocalDate‘S i tillegg til() metode:
var date = LocalDate.of (2018, 6, 25) var modifiedDate = date.plus (periode)
Dette vil legge til 1 år, 2 måneder og 3 dager til den gitte datoen og produsere den endrede datoen:
assertThat (modifiedDate) .isEqualTo ("28.08.2019")
På samme måte kan vi trekke fra a Periode fra en gitt dato:
var date = LocalDate.of (2018, 6, 25) var modifiedDate = date.minus (periode)
Og som forventet vil den endrede datoen være:
assertThat (modifiedDate) .isEqualTo ("2017-04-22")
Vi kan også bruke perioder til å representere avstanden mellom to datoer.
La oss anta at vi har to datoer, nøyaktig seks måneder fra hverandre:
var date1 = LocalDate.parse ("2018-06-25") var date2 = LocalDate.parse ("2018-12-25")
Nå kan vi representere avstanden mellom disse to datoene ved hjelp av periode mellom metode:
var periode = Periode. mellom (dato1, dato2)
De periode variabel vil produsere følgende:
assertThat (period.toString ()). isEqualTo ("P6M")
P står for Periode og 6M betyr 6 måneder.
6. Konklusjon
I denne artikkelen har vi lært det grunnleggende om hvordan du kan jobbe med Dates i Kotlin.
Vi har sett på hvordan du lager datoinstanser ved hjelp av forskjellige metoder og hvordan du formaterer datoobjekter tilbake til lesbare tekster.
Videre så vi på å hente ut komponenter fra Dato gjenstander og til slutt hvordan du kan jobbe med Perioder i Kotlin.
Koden som brukes i denne opplæringen, er tilgjengelig på GitHub.