Instant und Duration
Maschinenzeit und Zeitintervalle
Instant und Duration ist eine kostenlose Java Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Java Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.
Maschinenzeit
Während LocalDateTime für menschliche Kalenderwerte gedacht ist, stellt Instant einen präzisen Punkt auf der Maschinenzeitachse dar, gemessen ab der Epoche vom 01.01.1970 in UTC.
Duration stellt eine Zeitspanne zwischen zwei Zeitpunkten dar.
Ein Instant erzeugen
Instant.now() erfasst den aktuellen Zeitpunkt. Für eine vorhersehbare Ausgabe können Sie mit ofEpochSecond einen Wert aus einer festen Anzahl von Sekunden seit der Epoche erstellen.
import java.time.Instant;
public class Main {
public static void main(String[] args) {
Instant fixed = Instant.ofEpochSecond(1000000000);
System.out.println(fixed);
}
}Epochensekunden und Millisekunden
Mit getEpochSecond und toEpochMilli können Sie die zugrunde liegenden Epochenwerte auslesen. Diese sind für Zeitstempel und die Speicherung nützlich.
import java.time.Instant;
public class Main {
public static void main(String[] args) {
Instant t = Instant.ofEpochSecond(1500000000);
System.out.println(t.getEpochSecond());
System.out.println(t.toEpochMilli());
}
}Eine Duration erzeugen
Erstellen Sie eine Duration mit Factory-Methoden wie ofHours, ofMinutes und ofSeconds.
import java.time.Duration;
public class Main {
public static void main(String[] args) {
Duration d = Duration.ofMinutes(90);
System.out.println(d);
System.out.println(d.toHours());
}
}Duration zwischen Zeitpunkten
Duration.between misst den Abstand zwischen zwei Zeitpunkten. Dies ist die übliche Methode, um zu messen, wie lange etwas gedauert hat.
import java.time.Duration;
import java.time.Instant;
public class Main {
public static void main(String[] args) {
Instant start = Instant.ofEpochSecond(1000);
Instant end = Instant.ofEpochSecond(1075);
Duration elapsed = Duration.between(start, end);
System.out.println(elapsed.getSeconds());
}
}Durations umrechnen
Eine Duration kann sich mit toMinutes, toHours, toDays und toMillis in verschiedenen Einheiten ausgeben.
import java.time.Duration;
public class Main {
public static void main(String[] args) {
Duration d = Duration.ofSeconds(7320);
System.out.println(d.toMinutes());
System.out.println(d.toHours());
}
}Zu einem Instant addieren
Verschieben Sie einen Zeitpunkt mit plus und minus vor- oder rückwärts, indem Sie eine Duration übergeben.
import java.time.Duration;
import java.time.Instant;
public class Main {
public static void main(String[] args) {
Instant now = Instant.ofEpochSecond(1000);
Instant later = now.plus(Duration.ofHours(2));
System.out.println(later.getEpochSecond());
}
}Hilfsmethoden für plus
Komfortmethoden wie plusSeconds und plusMillis ersparen Ihnen bei einfachen Verschiebungen das Erstellen einer Duration.
import java.time.Instant;
public class Main {
public static void main(String[] args) {
Instant t = Instant.ofEpochSecond(0);
System.out.println(t.plusSeconds(3600).getEpochSecond());
}
}Instants vergleichen
Verwenden Sie isBefore und isAfter, um zwei Zeitpunkte auf der Zeitachse zu ordnen.
import java.time.Instant;
public class Main {
public static void main(String[] args) {
Instant a = Instant.ofEpochSecond(100);
Instant b = Instant.ofEpochSecond(200);
System.out.println(a.isBefore(b));
}
}Negative Durations
Liegt das Ende vor dem Anfang, ist die Dauer negativ. isNegative und abs helfen Ihnen bei der Verarbeitung.
import java.time.Duration;
import java.time.Instant;
public class Main {
public static void main(String[] args) {
Duration d = Duration.between(Instant.ofEpochSecond(200), Instant.ofEpochSecond(100));
System.out.println(d.isNegative());
System.out.println(d.abs().getSeconds());
}
}Instant und LocalDateTime im Vergleich
Verwenden Sie Instant für Zeitstempel, Protokolle und die Messung verstrichener Zeit, da dieser UTC eindeutig entspricht. Verwenden Sie LocalDateTime für menschliche Kalenderwerte, bei denen die Zeitzone an anderer Stelle behandelt wird.
Kurzer Test
Testen Sie Ihr Verständnis von Instant und Duration.
Zusammenfassung
Sie haben die Maschinenzeit kennengelernt:
Instantist ein präziser Punkt auf der UTC-Zeitachse ab der Epoche von 1970Durationist eine zeitbasierte Menge, die mitofHoursund ähnlichen Methoden erstellt wirdDuration.betweenmisst die verstrichene Zeit- Verschieben Sie Zeitpunkte mit
plusundminus - Verwenden Sie
Instantfür Zeitstempel undLocalDateTimefür menschliche Datumswerte
Häufig gestellte Fragen
Ist die Lektion „Instant und Duration“ kostenlos?
Ja — der vollständige Text von „Instant und Duration“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Java Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Instant und Duration“?
Maschinenzeit und Zeitintervalle Du übst Java Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Java Academy zu starten?
Keine Vorkenntnisse erforderlich. Java Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Instant und Duration“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Java Academy-Lektion Code schreiben und ausführen?
Ja. Jede Java Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- LocalDate, LocalTime, LocalDateTime
- Instant und Duration
- Perioden- und Datumsarithmetik
- Formatieren mit DateTimeFormatter