Werken met datums in Kotlin

1. Inleiding

In deze korte tutorial leren we over het werken met datums in Kotlin.

We zullen het onderzoeken Datum-gerelateerde bewerkingen zoals het maken, opmaken en manipuleren van datums.

2. Een datum aanmaken

De snelste manier om een Datum object gebruikt LocalDate‘S ontleden () methode:

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

De ontleden () methode gebruikt standaard de standaard datumnotatie jjjj-MM-dd.

We kunnen ook ons ​​eigen formaat doorgeven om een ​​datumtekenreeks te ontleden:

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

En als we meer controle nodig hebben, kunnen we dat specificeer expliciet de jaar, dag en maand gebruik makend van LocalDate‘S van() methode:

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

3. Een datum formatteren

Laten we vervolgens kijken hoe we onze datumobjecten terug kunnen opmaken Snaren.

De standaardmanier om Datum op te maken met het standaardformaat in Kotlin roept de toString () methode.

Laten we een date maken

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

en kijk naar de standaarduitvoer van using toString:

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

Dit ziet er leesbaar uit zoals het uitvoerformaat is jjjj-MM-dd, maar nogmaals, het kan zijn dat we de datum moeten opmaken in aangepaste formaten, afhankelijk van onze gebruiksscenario's.

Om onze datum op te maken in verschillende formaten die we kunnen gebruiken LocalDate‘S formaat() methode en lever het ons aangepaste formaat aan met behulp van DateTimeFormatter:

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

Dit levert een mooi opgemaakte datum op:

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

4. Datacomponenten extraheren

LocalDate biedt veel methoden die we kunnen gebruiken om specifieke componenten uit te halen Datum.

Sommige hiervan zijn vrij triviaal, zoals het extraheren van het jaar, de maand of de dag uit een Datum:

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

We kunnen ook andere informatie extraheren, zoals era, dayOfTheWeek of dayOfTheMonth:

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

5. Werken met Periode

Laten we tot slot eens kijken hoe u ermee kunt werken Perioden in Kotlin.

Perioden vertegenwoordigen een afstand op de tijdlijn. We kunnen een Periode gebruik makend van Periode‘S class factory-methode:

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

Hierdoor ontstaat een Periode van 1 jaar, 2 maanden en 3 dagen.

Om dit toe te voegen Periode tot een bestaande datum gebruiken we de LocalDate‘S plus() methode:

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

Dit voegt 1 jaar, 2 maanden en 3 dagen toe aan de opgegeven datum en produceert de gewijzigde datum:

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

Evenzo kunnen we a aftrekken Periode vanaf een bepaalde datum:

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

En zoals verwacht is de gewijzigde datum:

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

We kunnen ook perioden gebruiken om de afstand tussen twee datums weer te geven.

Stel dat we twee datums hebben, precies 6 maanden uit elkaar:

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

Nu kunnen we de afstand tussen deze twee datums weergeven met behulp van periodes tussen methode:

var period = Period.between (date1, date2)

De periode variabele zal het volgende produceren:

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

P. betekent Periode en 6 miljoen betekent 6 maanden.

6. Conclusie

In dit artikel hebben we de basis geleerd van het werken met Dates in Kotlin.

We hebben onderzocht hoe datuminstanties kunnen worden gemaakt met behulp van verschillende methoden en hoe datumobjecten weer in leesbare teksten kunnen worden opgemaakt.

Verder hebben we gekeken naar het extraheren van componenten uit Datum objecten en tot slot hoe ermee te werken Perioden in Kotlin.

De code die in deze tutorial wordt gebruikt, is beschikbaar op GitHub.