Arbeiten mit Daten in Kotlin: Überblick über Bibliotheken und Werkzeuge

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Arbeiten mit Daten in Kotlin: Überblick über Bibliotheken und Werkzeuge



Die Arbeit mit Datum und Uhrzeit ist eine der zentralen Aufgaben in den meisten Anwendungen. In Kotlin, einer modernen Multiplattform-Sprache, gibt es mehrere Möglichkeiten, mit Daten zu arbeiten. In diesem Artikel betrachten wir die wichtigsten Bibliotheken und Werkzeuge, die Ihnen helfen, Daten, Uhrzeiten, Intervalle und Zeitzonen in Ihren Kotlin-Projekten effizient zu verwalten.



1. Standard-Java-Bibliothek: java.time



Da Kotlin vollständig mit Java kompatibel ist, können Sie die leistungsstarke Bibliothek java.time (JSR-310) nutzen, die mit Java 8 eingeführt wurde. Dies ist die empfohlene Methode für Server- und Android-Anwendungen (ab API 26+).



Wichtige Klassen:

  • LocalDate — Datum ohne Uhrzeit (Jahr, Monat, Tag).
  • LocalTime — Uhrzeit ohne Datum.
  • LocalDateTime — Datum und Uhrzeit ohne Zeitzone.
  • ZonedDateTime — Datum und Uhrzeit mit Zeitzone.
  • Instant — Zeitpunkt in UTC (Maschinenzeit).
  • Duration und Period — Zeitintervalle.


Anwendungsbeispiel:

import java.time.*

fun main() { // Aktuelles Datum und Uhrzeit val now = LocalDateTime.now() println("Jetzt: $now")

// Erstellen eines bestimmten Datums val birthDate = LocalDate.of(1990, Month.JUNE, 15) println("Geburtsdatum: $birthDate")

// Arbeiten mit Zeitzonen val zonedDateTime = ZonedDateTime.now(ZoneId.of("Europe/Moscow")) println("Zeit in Moskau: $zonedDateTime")

// Differenz zwischen Daten val from = LocalDate.of(2023, 1, 1) val to = LocalDate.now() val daysBetween = ChronoUnit.DAYS.between(from, to) println("Tage seit Neujahr: $daysBetween")

// Formatierung val formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm") println("Formatierte Datum: ${now.format(formatter)}")}


Vorteile: integriert, zuverlässig, vollständige Unterstützung aller Funktionen.

Nachteile: wird auf älteren Android-Geräten (vor API 26) ohne Desugaring nicht unterstützt.



2. kotlinx-datetime (Multiplattform-Bibliothek von JetBrains)



Für Multiplattform-Projekte (KMP) hat JetBrains die Bibliothek kotlinx-datetime erstellt. Sie bietet eine einheitliche API für alle Plattformen (JVM, Native, JS).



Wichtige Klassen:

  • Instant — Zeitpunkt in UTC.
  • LocalDateTime — Datum+Uhrzeit ohne Zeitzone.
  • LocalDate und LocalTime.
  • DateTimePeriod und DatePeriod — Intervalle.
  • TimeZone — Zeitzone.


Anwendungsbeispiel:

import kotlinx.datetime.*

fun main() { // Aktueller Zeitpunkt val now = Clock.System.now() println("Aktuelle UTC: $now")

// Umwandlung in lokale Zeit val localDateTime = now.toLocalDateTime(TimeZone.currentSystemDefault()) println("Lokale Zeit: $localDateTime")

// Erstellen eines Datums val date = LocalDate(2024, 12, 25) println("Datum: $date")

// Differenz zwischen Daten val start = LocalDateTime(2024, 1, 1, 0, 0) val end = LocalDateTime(2024, 12, 31, 23, 59) val period = start.periodUntil(end, DateTimeUnit.DAY) println("Tage dazwischen: $period")

// Formatierung (erfordert separate Bibliothek oder manuell) println("Jahr: ${localDateTime.year}, Monat: ${localDateTime.monthNumber}")}


Vorteile: Multiplattform-Fähigkeit, Leichtgewichtigkeit, offizielle Unterstützung.

Nachteile: eingeschränkte Formatierungsmöglichkeiten (kein integrierter DateTimeFormatter).

Empfehlungen