0Pricing
Java Academy · Lektion

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:

  • Instant ist ein präziser Punkt auf der UTC-Zeitachse ab der Epoche von 1970
  • Duration ist eine zeitbasierte Menge, die mit ofHours und ähnlichen Methoden erstellt wird
  • Duration.between misst die verstrichene Zeit
  • Verschieben Sie Zeitpunkte mit plus und minus
  • Verwenden Sie Instant für Zeitstempel und LocalDateTime fü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

  1. LocalDate, LocalTime, LocalDateTime
  2. Instant und Duration
  3. Perioden- und Datumsarithmetik
  4. Formatieren mit DateTimeFormatter
← Zurück zu Java Academy