Arbeiten mit Daten in Kotlin: Bibliotheken und Werkzeuge (Kotlinx-datetime, Joda-Time, java.time)

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 Verarbeitung von Datum und Uhrzeit ist eine der Kernaufgaben in jeder Anwendung: von der Ereignisprotokollierung über die Berechnung von Fristen bis hin zur Anzeige von Kalendern. In Kotlin, einer Sprache, die auf der JVM läuft (und auch Multiplattform-Projekte unterstützt), stehen dem Entwickler mehrere leistungsstarke Bibliotheken zur Verfügung. In diesem Artikel betrachten wir drei Hauptansätze: kotlinx-datetime (empfohlen für Multiplattform), java.time (für JVM/Android) und Joda-Time (legendäre Bibliothek, relevant für alte Projekte).



1. kotlinx-datetime — offizielle Multiplattform-Bibliothek



kotlinx-datetime ist eine moderne Bibliothek von JetBrains, die speziell für Kotlin Multiplatform entwickelt wurde. Sie bietet eine einheitliche API für die Arbeit mit Datum, Uhrzeit, Zeitzonen und Dauern auf allen Plattformen (JVM, JS, Native).



Installation (Gradle)

dependencies {    implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.6.1")}


Hauptklassen und Beispiele

  • Instant — Zeitpunkt (UTC).
  • LocalDateTime — Datum+Uhrzeit ohne Zeitzone.
  • LocalDate — nur Datum.
  • LocalTime — nur Uhrzeit.
  • TimeZone — Zeitzone.


import kotlinx.datetime.*

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

// Konvertierung in lokale Zeit (systemische Zeitzone) val localDateTime: LocalDateTime = now.toLocalDateTime(TimeZone.currentSystemDefault()) println("Local: $localDateTime")

// Arbeiten mit Daten val today: LocalDate = localDateTime.date val tomorrow: LocalDate = today.plus(1, DateTimeUnit.DAY) println("Tomorrow: $tomorrow")

// Differenz zwischen Daten val daysBetween = tomorrow.daysUntil(today) println("Days between: $daysBetween") // -1

// Parsen eines Strings val parsedDate = LocalDate.parse("2025-03-15") println("Parsed: $parsedDate")}


2. java.time (ThreeTen-Backport) — Standard für JVM und Android



Seit Java 8 ist das Paket java.time (JSR-310) Teil der Standardbibliothek. Für Android API < 26 wird ThreeTen-Backport (oder ThreeTenABP für Android) verwendet. Kotlin ist vollständig kompatibel mit dieser API.



Installation (für Android mit minSdk < 26)

dependencies {    implementation("org.threeten:threetenbp:1.6.9")}


Beispiele

import java.time.*

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

// Erstellen eines bestimmten Datums val date = LocalDate.of(2025, Month.DECEMBER, 25) println("Christmas: $date")

// Formatierung val formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm") val formatted = now.format(formatter) println("Formatted: $formatted")

// Differenz zwischen Daten val start = LocalDate.of(2025, 1, 1) val end = LocalDate.of(2025, 12, 31) val days = ChronoUnit.DAYS.between(start, end) println("Days in 2025: $days") // 364}


3. Joda-Time — bewährte Bibliothek



Joda-Time war der De-facto-Standard vor dem Erscheinen von java.time. Heute wird sie hauptsächlich in Legacy-Projekten verwendet. Die Bibliothek bietet umfangreiche Funktionen, gilt aber als veraltet — es wird empfohlen, auf java.time oder kotlinx-datetime zu migrieren.



Installation

dependencies {    implementation("joda-time:joda-time:2.12.7")}


Beispiel

import org.joda.time.*import org.joda.time.format.DateTimeFormat

fun main() { val now = DateTime.now() println("Now: $now")

// Bei

Empfehlungen