{"id":245,"date":"2024-02-25T23:06:50","date_gmt":"2024-02-25T22:06:50","guid":{"rendered":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=245"},"modified":"2024-02-28T23:07:44","modified_gmt":"2024-02-28T22:07:44","slug":"ueberblick-ueber-die-java-8-date-time-api","status":"publish","type":"post","link":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=245","title":{"rendered":"\u00dcberblick \u00fcber die Java 8 Date\/Time-API"},"content":{"rendered":"\n<p>Mit der Einf\u00fchrung von Java 8 wurde die Date\/Time-API grundlegend \u00fcberarbeitet und um leistungsf\u00e4hige Klassen erweitert. Diese Klassen bieten eine verbesserte Behandlung von Datum und Uhrzeit im Vergleich zu den \u00e4lteren Date- und Calendar-Klassen. In diesem Artikel werden wir uns eingehend mit verschiedenen Klassen der Java 8 Date\/Time-API befassen, darunter Instant, Period, Duration, LocalDateTime, OffsetDateTime und ZonedDateTime.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Instant<\/h2>\n\n\n\n<p><code>Instant<\/code> ist eine einfache Klasse, die einen bestimmten Punkt in der Zeit repr\u00e4sentiert. Dieser Punkt wird in der Regel in Form von Sekunden seit dem Epoch-Zeitpunkt (1. Januar 1970 um 00:00:00 UTC) dargestellt. Instanzen von <code>Instant<\/code> sind unver\u00e4nderlich (immutable).<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Instant instant = Instant.now(); <span class=\"hljs-comment\">\/\/ aktuelle Zeit<\/span>\nSystem.out.println(instant);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Mit <code>Instant<\/code> k\u00f6nnen Sie auch spezifische Zeitpunkte erstellen, indem Sie Sekunden und Nanosekunden angeben.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Instant specificInstant = Instant.ofEpochSecond(<span class=\"hljs-number\">1609459200<\/span>, <span class=\"hljs-number\">0<\/span>); <span class=\"hljs-comment\">\/\/ 01. Januar 2021 00:00:00 UTC<\/span>\nSystem.out.println(specificInstant);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Period<\/h2>\n\n\n\n<p>Die Klasse <code>Period<\/code> repr\u00e4sentiert eine Zeitspanne zwischen zwei Datumswerten, gemessen in Jahren, Monaten und Tagen. Sie ist besonders n\u00fctzlich, wenn Sie mit zeitlichen Abst\u00e4nden auf Kalenderebene arbeiten m\u00f6chten.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">LocalDate startDate = LocalDate.of(<span class=\"hljs-number\">2022<\/span>, <span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">1<\/span>);\nLocalDate endDate = LocalDate.of(<span class=\"hljs-number\">2024<\/span>, <span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">1<\/span>);\n\nPeriod period = Period.between(startDate, endDate);\nSystem.out.println(<span class=\"hljs-string\">\"Years: \"<\/span> + period.getYears() + <span class=\"hljs-string\">\", Months: \"<\/span> + period.getMonths() + <span class=\"hljs-string\">\", Days: \"<\/span> + period.getDays());<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Duration<\/h2>\n\n\n\n<p>Im Gegensatz zu <code>Period<\/code> misst <code>Duration<\/code> zeitliche Abst\u00e4nde auf der Ebene von Stunden, Minuten, Sekunden und Nanosekunden. Es ist ideal f\u00fcr die Arbeit mit pr\u00e4zisen Zeitintervallen.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">LocalTime startTime = LocalTime.of(<span class=\"hljs-number\">12<\/span>, <span class=\"hljs-number\">0<\/span>, <span class=\"hljs-number\">0<\/span>);\nLocalTime endTime = LocalTime.of(<span class=\"hljs-number\">15<\/span>, <span class=\"hljs-number\">30<\/span>, <span class=\"hljs-number\">0<\/span>);\n\nDuration duration = Duration.between(startTime, endTime);\nSystem.out.println(<span class=\"hljs-string\">\"Hours: \"<\/span> + duration.toHours() + <span class=\"hljs-string\">\", Minutes: \"<\/span> + duration.toMinutes());<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">LocalDateTime<\/h2>\n\n\n\n<p><code>LocalDateTime<\/code> repr\u00e4sentiert ein Datum und eine Uhrzeit ohne Ber\u00fccksichtigung von Zeitzonen. Es ist besonders geeignet f\u00fcr Anwendungen, bei denen die Zeitinformation lokal behandelt wird.<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">LocalDateTime localDateTime = LocalDateTime.now();\nSystem.out.println(localDateTime);<\/code><\/span><\/pre>\n\n\n<p>Sie k\u00f6nnen auch spezifische Zeitpunkte erstellen, indem Sie das Datum und die Uhrzeit angeben.<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">LocalDateTime specificDateTime = LocalDateTime.of(2023, 5, 15, 14, 30);\nSystem.out.println(specificDateTime);<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">OffsetDateTime<\/h2>\n\n\n\n<p><code>OffsetDateTime<\/code> ist eine Erweiterung von <code>LocalDateTime<\/code>, die auch eine Verschiebung (Offset) von der UTC-Zeit enth\u00e4lt. Dies ist n\u00fctzlich, um Zeitpunkte in einem bestimmten Zeitzonenkontext zu repr\u00e4sentieren.<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">OffsetDateTime offsetDateTime = OffsetDateTime.now();\nSystem.out.println(offsetDateTime);<\/code><\/span><\/pre>\n\n\n<p>Sie k\u00f6nnen auch eine spezifische Verschiebung angeben.<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">OffsetDateTime specificOffsetDateTime = OffsetDateTime.of(2022, 8, 10, 18, 0, 0, 0, ZoneOffset.ofHours(2));\nSystem.out.println(specificOffsetDateTime);<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">ZonedDateTime<\/h2>\n\n\n\n<p><code>ZonedDateTime<\/code> erweitert <code>LocalDateTime<\/code> um die Informationen zur Zeitzonen-ID. Dies ist besonders wichtig, wenn Sie mit internationalen Zeitzonen arbeiten.<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">ZonedDateTime zonedDateTime = ZonedDateTime.now();\nSystem.out.println(zonedDateTime);<\/code><\/span><\/pre>\n\n\n<p>Sie k\u00f6nnen auch eine bestimmte Zeitzonen-ID angeben.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">ZonedDateTime specificZonedDateTime = ZonedDateTime.of(<span class=\"hljs-number\">2022<\/span>, <span class=\"hljs-number\">12<\/span>, <span class=\"hljs-number\">25<\/span>, <span class=\"hljs-number\">8<\/span>, <span class=\"hljs-number\">0<\/span>, <span class=\"hljs-number\">0<\/span>, <span class=\"hljs-number\">0<\/span>, ZoneId.of(<span class=\"hljs-string\">\"Europe\/Berlin\"<\/span>));\nSystem.out.println(specificZonedDateTime);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n\n\n\n<p>Die Java 8 Date\/Time-API bietet m\u00e4chtige Klassen zur effektiven Handhabung von Datum und Uhrzeit. Durch die Verwendung von Klassen wie <code>Instant<\/code>, <code>Period<\/code>, <code>Duration<\/code>, <code>LocalDateTime<\/code>, <code>OffsetDateTime<\/code> und <code>ZonedDateTime<\/code> k\u00f6nnen Entwickler zeitbezogene Operationen pr\u00e4zise und benutzerfreundlich implementieren. Es ist wichtig, die geeignete Klasse basierend auf den Anforderungen der Anwendung zu w\u00e4hlen, sei es die Arbeit mit Zeitpunkten, Zeitspannen oder spezifischen Zeitpunkten in unterschiedlichen Zeitzonen. Java 8 hat die Arbeit mit Datum und Uhrzeit in der Programmierung erheblich verbessert und bietet eine solide Grundlage f\u00fcr die Verwaltung von Zeit in Anwendungen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mit der Einf\u00fchrung von Java 8 wurde die Date\/Time-API grundlegend \u00fcberarbeitet und um leistungsf\u00e4hige Klassen erweitert. Diese Klassen bieten eine verbesserte Behandlung von Datum und Uhrzeit im Vergleich zu den \u00e4lteren Date- und Calendar-Klassen. In diesem Artikel werden wir uns eingehend mit verschiedenen Klassen der Java 8 Date\/Time-API befassen, darunter Instant, Period, Duration, LocalDateTime, OffsetDateTime [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-245","post","type-post","status-publish","format-standard","hentry","category-plain_java"],"_links":{"self":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=245"}],"version-history":[{"count":1,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/245\/revisions"}],"predecessor-version":[{"id":246,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/245\/revisions\/246"}],"wp:attachment":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=245"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=245"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}