{"id":3675,"date":"2017-02-21T18:16:16","date_gmt":"2017-02-21T16:16:16","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=3675"},"modified":"2017-02-21T18:16:16","modified_gmt":"2017-02-21T16:16:16","slug":"datumsklasse-java-time-localdate","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2017\/02\/datumsklasse-java-time-localdate\/","title":{"rendered":"Datumsklasse java.time.LocalDate"},"content":{"rendered":"<p>Ein Datum (ohne Zeitzone) repr\u00e4sentiert die Klasse LocalDate. Damit l\u00e4sst sich zum Beispiel ein Geburtsdatum repr\u00e4sentieren.<\/p>\n<p>Ein temporales Objekt kann \u00fcber die statischen of(\u2026)-Fabrikmethoden aufgebaut, \u00fcber ofInstant(Instant instant, ZoneId zone) oder von einem anderen temporalen Objekt abgeleitet werden. Interessant sind die Methoden, die mit einem TemporalAdjuster arbeiten.<\/p>\n<p>Beispiel<\/p>\n<pre> LocalDate\u00a0today\u00a0=\u00a0LocalDate.now();\n LocalDate\u00a0nextMonday\u00a0=\u00a0today.with(\u00a0TemporalAdjusters.next(\u00a0DayOfWeek.SATURDAY\u00a0)\u00a0);\n System.out.printf(\u00a0\"Heute\u00a0ist\u00a0der\u00a0%s,\u00a0und\u00a0frei\u00a0ist\u00a0am\u00a0Samstag,\u00a0den\u00a0%s\",\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0today,\u00a0nextMonday\u00a0);<\/pre>\n<p>Mit den Objekten in der Hand k\u00f6nnen wir diverse Getter nutzen und einzelne Felder erfragen, etwa getDayOfMonth(), getDayOfYear() (liefern int) oder getDayOfWeek(), das eine Aufz\u00e4hlung vom Typ DayOfWeek liefert, und getMonth(), das eine Aufz\u00e4hlung vom Typ Month Weiterhin gibt es long toEpochDay() und und in Java 9 long toEpochSecond(LocalTime time, ZoneOffset offset).<\/p>\n<p>Dazu kommen Methoden, die mit minusXXX(\u2026) oder plusXXX(\u2026) neue LocalDate-Objekte liefern, wenn zum Beispiel mit minusYear(long yearsToSubtract) eine Anzahl Jahre zur\u00fcckgelaufen werden soll. Durch die Negation des Vorzeichens kann auch die jeweils entgegengesetzte Methode genutzt werden, sprich LocalDate.now().minusMonths(1) kommt zum gleichen Ergebnis wie LocalDate.now().plusMonths(-1). Die withXXX(\u2026)-Methoden belegen ein Feld neu und liefern ein modifiziertes neues LocalDate-Objekt.<\/p>\n<p>Von einem LocaleDate lassen sich andere temporale Objekte bilden, atTime(\u2026) etwa liefert LocalDateTime-Objekte, bei denen gewisse Zeit-Felder belegt sind. atTime(int hour, int minute) ist so ein Beispiel. Mit until(\u2026) l\u00e4sst sich eine Zeitdauer vom Typ Period liefern. Interessant sind zwei neue Java 9-Methoden, die einen Strom von LocalDate-Objekten bis zu einem Endpunkt liefern.<\/p>\n<ul>\n<li>Stream&lt;LocalDate&gt; datesUntil(LocalDate endExclusive)<\/li>\n<li>Stream&lt;LocalDate&gt; datesUntil(LocalDate endExclusive, Period step)<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Ein Datum (ohne Zeitzone) repr\u00e4sentiert die Klasse LocalDate. Damit l\u00e4sst sich zum Beispiel ein Geburtsdatum repr\u00e4sentieren. Ein temporales Objekt kann \u00fcber die statischen of(\u2026)-Fabrikmethoden aufgebaut, \u00fcber ofInstant(Instant instant, ZoneId zone) oder von einem anderen temporalen Objekt abgeleitet werden. Interessant sind die Methoden, die mit einem TemporalAdjuster arbeiten. Beispiel LocalDate\u00a0today\u00a0=\u00a0LocalDate.now(); LocalDate\u00a0nextMonday\u00a0=\u00a0today.with(\u00a0TemporalAdjusters.next(\u00a0DayOfWeek.SATURDAY\u00a0)\u00a0); System.out.printf(\u00a0&#8222;Heute\u00a0ist\u00a0der\u00a0%s,\u00a0und\u00a0frei\u00a0ist\u00a0am\u00a0Samstag,\u00a0den\u00a0%s&#8220;, \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0today,\u00a0nextMonday\u00a0); Mit den Objekten [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[1,11,85],"tags":[],"class_list":["post-3675","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-insel","category-java-9"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/3675","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=3675"}],"version-history":[{"count":3,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/3675\/revisions"}],"predecessor-version":[{"id":3678,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/3675\/revisions\/3678"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=3675"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=3675"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=3675"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}