Arbeiten mit Datum und Uhrzeit in Kotlin: von A bis Z – vollständiger Leitfaden

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

Einführung in die Arbeit mit Datum und Uhrzeit in Kotlin



Die Arbeit mit Datum und Uhrzeit gehört zu den häufigsten Aufgaben in der modernen Softwareentwicklung. Ob es um das Protokollieren von Ereignissen, die Berechnung von Fristen, die Planung von Aufgaben oder die Darstellung von Benutzeroberflächen geht – ohne eine korrekte Handhabung von Zeitstempeln kommt man nicht aus. In Kotlin, das vollständig mit Java kompatibel ist, ist das Paket java.time, das mit Java 8 eingeführt wurde, der De-facto-Standard. Dieses Paket hat die veralteten java.util.Date und java.util.Calendar ersetzt und bietet eine threadsichere, unveränderliche und intuitiv verständliche API.



In diesem Artikel werden wir alle wesentlichen Aspekte der Arbeit mit Datum und Uhrzeit in Kotlin behandeln: von der Erstellung von Objekten über deren Formatierung und Parsing bis hin zur Durchführung arithmetischer Operationen. Sie erfahren, wie Sie LocalDate, LocalTime, LocalDateTime, Instant, Duration und Period anhand praktischer Beispiele einsetzen.



1. Grundlegende Klassen für die Arbeit mit Datum und Uhrzeit



Das Paket java.time enthält mehrere Schlüsselklassen, von denen jede eine bestimmte Aufgabe erfüllt. Betrachten wir sie genauer.



1.1 LocalDate – Arbeiten mit einem Datum ohne Uhrzeit



Die Klasse LocalDate repräsentiert ein Datum (Jahr, Monat, Tag) ohne Berücksichtigung von Uhrzeit und Zeitzone. Sie ist ideal für Geburtstage, Kalenderereignisse und Daten ohne Bindung an einen bestimmten Zeitpunkt.



import java.time.LocalDate

fun main() { // Aktuelles Datum val today = LocalDate.now() println("Heute: $today") // 2025-04-05

// Bestimmtes Datum val newYear = LocalDate.of(2025, 1, 1) println("Neujahr: $newYear")

// Parsing aus einem String val parsedDate = LocalDate.parse("2025-12-31") println("Geparstes Datum: $parsedDate")}


1.2 LocalTime – Arbeiten mit einer Uhrzeit ohne Datum



LocalTime speichert nur die Uhrzeit (Stunden, Minuten, Sekunden, Nanosekunden). Es ist nützlich für die Speicherung von Arbeitsbeginnzeiten, Zeitplänen oder Timern.



import java.time.LocalTime

fun main() { // Aktuelle Uhrzeit val now = LocalTime.now() println("Jetzt: $now")

// Bestimmte Uhrzeit val meetingTime = LocalTime.of(14, 30, 0) println("Besprechungszeit: $meetingTime")

// Parsing val parsedTime = LocalTime.parse("09:15:30") println("Geparste Zeit: $parsedTime")}


1.3 LocalDateTime – Kombination von Datum und Uhrzeit



LocalDateTime kombiniert LocalDate und LocalTime. Dies ist die am häufigsten verwendete Klasse zum Speichern eines Zeitpunkts ohne Zeitzone.



import java.time.LocalDateTime

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

// Erstellung aus Komponenten val specific = LocalDateTime.of(2025, 4, 5, 10, 30, 0) println("Bestimmter Zeitpunkt: $specific")

// Kombination von Datum und Uhrzeit val date = LocalDate.of(2025, 12, 25) val time = LocalTime.of(18, 0) val christmas = LocalDateTime.of(date, time) println("Weihnachten: $christmas")}


1.4 Instant – Zeitpunkt in UTC



Instant repräsentiert einen Punkt auf der Zeitachse im Unix-Timestamp-Format (Anzahl der Sekunden und Nanosekunden seit dem 1. Januar 1970). Unverzichtbar für die Speicherung von Logs, die Arbeit mit Datenbanken und den Datenaustausch zwischen Systemen.



import java.time.Instant

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

// Aus Unix-Timestamp val fromEpoch = Instant.ofEpochSecond(1_700_000_000) println("Aus Timestamp: $fromEpoch")

// Konvertierung in Millisekunden val millis = now.toEpochMilli() println("Millisekunden: $millis")}


2. Formatierung und Parsing von Datum und Uhrzeit



Zur Umwandlung von Daten in Zeichenketten

Blogs

Buchempfehlungen