Mit Datumsangaben in Kotlin arbeiten

Arbeiten mit Dates in Kotlin

1. Einführung

In diesem kurzen Tutorial erfahren Sie, wie Sie mit Daten in Kotlin arbeiten.

Wir werden uns mitDate--bezogenen Vorgängen wie dem Erstellen, Formatieren und Bearbeiten von Datumsangaben befassen.

2. Ein Datum erstellen

Der schnellste Weg, einDate-Objekt zu erstellen, ist dieLocalDate-sparse()-Methode:

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

Die Methodeparse() verwendet standardmäßigstandard date formatyyyy-MM-dd.

Wir können auch unser eigenes Format übergeben, um eine Datumszeichenfolge zu analysieren:

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

Und wenn wir mehr Kontrolle brauchen, können wirexplicitly specify the year, day and month using LocalDate‘s of() method:

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

3. Formatieren eines Datums

Schauen wir uns als nächstes an, wie wir unsere Datumsobjekte aufStrings zurückformatieren können.

Die Standardmethode zum Formatieren des Datums unter Verwendung des Standardformats inKotlin is ruft dietoString() method auf.

Erstellen wir ein Datum

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

und sehen Sie sich die Standardausgabe der Verwendung vontoString an:

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

Dies sieht lesbar aus, da das Ausgabeformatyyyy-MM-dd ist. Abhängig von unseren Anwendungsfällen müssen wir das Datum jedoch möglicherweise in benutzerdefinierte Formate formatieren.

To format our date to different formats we can use LocalDate‘s format() method und geben Sie unser benutzerdefiniertes Format mitDateTimeFormatter an:

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

Dies gibt ein schön formatiertes Datum aus:

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

4. Extrahieren von Datumskomponenten

LocalDate enthält viele Methoden, mit denen wir bestimmte Komponenten ausDate. extrahieren können

Einige davon sind recht trivial, z. B. das Extrahieren von Jahr, Monat oder Tag ausDate:

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

Wir können auch andere Informationen wie era, dayOfTheWeek oder dayOfTheMonth extrahieren:

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

5. Arbeiten mitPeriod

Lassen Sie uns abschließend die Arbeit mitPeriods in Kotlin untersuchen.

Perioden repräsentieren eine Entfernung auf der Zeitachse. Wir könnenPeriodmit der Klassenfactory-Methode vonPerioderstellen:

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

Dies erzeugt einen Prozentsatz (t0) von 1 Jahr, 2 Monaten und 3 Tagen.

Um diesePeriod zu einem vorhandenen Datum hinzuzufügen, verwenden wir dieplus() plus() -Smethod:

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

Dadurch wird das angegebene Datum um 1 Jahr, 2 Monate und 3 Tage verlängert und das Änderungsdatum erstellt:

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

In ähnlicher Weise können wir einPeriod von einem bestimmten Datum abziehen:

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

Und wie erwartet wird das Änderungsdatum sein:

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

Wir können auch Perioden verwenden, um den Abstand zwischen zwei Daten darzustellen.

Nehmen wir an, wir haben zwei Daten, die genau 6 Monate voneinander entfernt sind:

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

Jetzt können wir den Abstand zwischen diesen beiden Daten mithilfe derbetween -Methode von Period darstellen:

var period = Period.between(date1, date2)

Die Variableperiod erzeugt die folgenden:

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

P steht fürPeriod und6M means 6 Monate.

6. Fazit

In diesem Artikel haben wir die Grundlagen der Arbeit mit Daten in Kotlin erlernt.

Wir haben untersucht, wie Datumsinstanzen mit verschiedenen Methoden erstellt werden und wie Datumsobjekte wieder in lesbare Texte umgewandelt werden.

Darüber hinaus haben wir uns mit dem Extrahieren von Komponenten ausDate Objekten und schließlich mit der Arbeit mitPeriods in Kotlin befasst.

Der in diesem Tutorial verwendete Code istover on Github verfügbar.