Java LocalTime-Klasse
LocalTimeist eine wichtige Klasse in der in Java 8 eingeführten Datums-/Zeit-API (java.timePaket), die verwendet wird, um eine Uhrzeit ohne Zeitzoneninformationen darzustellen. Sie behandelt speziell die Tageszeit mit Genauigkeit bis zur Nanosekunde.
Eigenschaften der LocalTime-Klasse
1. Unveränderlichkeit
LocalTime ist eine unveränderliche Klasse. Alle Änderungsoperationen geben eine neue Instanz zurück, und das ursprüngliche Objekt bleibt unverändert.
2. Keine Zeitzoneninformationen
LocalTime enthält keine Zeitzoneninformationen; es repräsentiert nur die lokale Zeit.
3. Zeitgenauigkeit
Unterstützt Zeitgenauigkeit von Stunden bis Nanosekunden (HH:mm:ss.nnnnnnnnn).
Erstellen von LocalTime-Objekten
1. Abrufen der aktuellen Zeit
LocalTime currentTime = LocalTime.now();
System.out.println("当前时间: " + currentTime);
2. Erstellen mithilfe der of()-Methode
Beispiel
LocalTime time1 = LocalTime.of(14, 30);
// 09:15:30 erstellen
LocalTime time2 = LocalTime.of(9, 15, 30);
// Erstelle 10:20:30.500 (500 Millisekunden)
LocalTime time3 = LocalTime.of(10, 20, 30, 500000000);
3. Zeichenketten parsen
LocalTime parsedTime = LocalTime.parse("08:45");
System.out.println("解析的时间: " + parsedTime);
Häufige Methoden
1. Zeitkomponenten abrufen
Beispiel
<p>int hour = time.getHour(); // 15
int minute = time.getMinute(); // 45
int second = time.getSecond(); // 20
int nano = time.getNano(); // 123456789
2. Zeitvergleich
Beispiel
LocalTime time2 = LocalTime.of(11, 15);
boolean isBefore = time1.isBefore(time2); // true
boolean isAfter = time1.isAfter(time2); // false
boolean isEqual = time1.equals(time2); // false
3. Zeitarithmetik
Beispiel
// 2 Stunden hinzufügen
LocalTime plusHours = time.plusHours(2); // 11:00
// 30 Minuten subtrahieren
LocalTime minusMinutes = time.minusMinutes(30); // 08:30
// 1 Stunde und 15 Minuten hinzufügen
LocalTime plusDuration = time.plus(Duration.ofMinutes(75)); // 10:15
4. Zeitanpassung
Beispiel
// Stunde auf 10 setzen
LocalTime withHour = time.withHour(10); // 10:30
// Minute auf 45 setzen
LocalTime withMinute = time.withMinute(45); // 14:45
Formatierung und Parsing
1. Zeitformatierung
Beispiel
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
String formattedTime = time.format(formatter); // "16:45:30"
2. Zeitstrings parsen
Beispiel
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("hh:mm:ss a");
LocalTime parsedTime = LocalTime.parse(timeString, formatter);
Praktische Anwendungsbeispiele
1. Berechnen des Intervalls zwischen zwei Zeitpunkten
Beispiel
LocalTime end = LocalTime.of(17, 30);
Duration duration = Duration.between(start, end);
System.out.println("Arbeitsstunden: " + duration.toHours() + " Stunden"); // 8 Stunden
2. Prüfen, ob es innerhalb der Geschäftszeiten liegt
Beispiel
LocalTime opening = LocalTime.of(8, 0);
LocalTime closing = LocalTime.of(22, 0);
if (current.isAfter(opening) && current.isBefore(closing)) {
System.out.println("Der Laden ist geöffnet");
} else {
System.out.println("Der Laden ist geschlossen");
}
3. Erstellen eines Zeitbereichs
Beispiel
LocalTime end = start.plusHours(8); // 16:00
System.out.println("Öffnungszeiten: " + start + " bis " + end);
Zusammenfassung
LocalTimeist eine Kernklasse in der Java-8-Datums-/Zeit-API für den Umgang mit lokaler Zeit. Sie bietet umfangreiche Methoden zum Erstellen, Bearbeiten und Formatieren von Zeit. Aufgrund ihrer Unveränderlichkeit und Thread-Sicherheit,LocalTimees eignet sich sehr gut für die Verwendung in Multithread-Umgebungen. MeisternLocalTimeDie Verwendung dieser Klasse kann zeitbezogene Programmieraufgaben erheblich vereinfachen.