convert Date to LocalDate

guguli

Bekanntes Mitglied
Hallo zusammen,

ich möchte Date objekt in LocalDate umwandeln:

Mein code ist bis jetzt so:
Code:
protected Optional<LocalDate> getPruefDatum(Object entity) {
        if (entity instanceof KlassA) {
            return Optional.of((KlassA) entity).map(obj -> convertToLocalDateViaInstant(obj));
        }

        return Optional.empty();
    }

    private LocalDate convertToLocalDateViaInstant(KlassAobj) {
            return obj.getDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
    }

Das Problem hir bei ist, dass es möglich ist getDate() null liefern kann.
Und da fliegt mein Code auf die Fresse.

so kann ich den Code auch nicht modifizieren:

Code:
protected Optional<LocalDate> getPruefDatum(Object entity) {
        if (entity instanceof KlassA) {
            return Optional.of((KlassA) entity).map(obj -> convertToLocalDateViaInstant(obj));
        }

        return Optional.empty();
    }

    private LocalDate convertToLocalDateViaInstant(KlassAobj) {
        if (obj.getDate() != null) {
            return obj.getDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
        }
        return null;
        
    }

Wie kann ich denn das Problem beheben??

Danke
 

httpdigest

Top Contributor
Liefer einfach ein Optional of LocalDate insgesamt zurück:
Java:
Optional.ofNullable(((KlassA) entity).getDate()).map(d -> d.toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
 

TM69

Bekanntes Mitglied
Du kannst alternativ auch die Funktion:
Code:
public LocalDate convertToLocalDateViaInstant(Date dateToConvert) {
    return dateToConvert.toInstant()
      .atZone(ZoneId.systemDefault())
      .toLocalDate();
}

und ab Java 8:
Code:
public LocalDate convertToLocalDateViaSqlDate(Date dateToConvert) {
    return new java.sql.Date(dateToConvert.getTime()).toLocalDate();
}
verwenden.
 

mrBrown

Super-Moderator
Mitarbeiter
Du kannst alternativ auch die Funktion:
Code:
public LocalDate convertToLocalDateViaInstant(Date dateToConvert) {
    return dateToConvert.toInstant()
      .atZone(ZoneId.systemDefault())
      .toLocalDate();
}

und ab Java 8:
Code:
public LocalDate convertToLocalDateViaSqlDate(Date dateToConvert) {
    return new java.sql.Date(dateToConvert.getTime()).toLocalDate();
}
verwenden.
Überseh ich was oder ist das erste nicht genau die Variante aus’m ersten Beitrag?

btw, Java 8 sind die Varianten alle, LocalDate kam ja erst mit Java 8 ;)
 

httpdigest

Top Contributor
...sondern wie man Date nach LocalDate konvertiert.
Und genau das hat der TE in seinem ersten Post bereits genauso gelöst wie du es auch vorgeschlagen hast.

Die Frage war nicht, wie man Date im Allgemeinen nach LocalDate konvertiert (das hatte der TE bereits gelöst). Das Problem war, dass das Date (gelesen aus dem Domänenobjekt `entity`) selbst null sein konnte. Und dein Vorschlag ist hierfür nun mal keine Lösung.
 

mrBrown

Super-Moderator
Mitarbeiter
Da übersiehst du etwas
Was überseh ich denn?

Der Code zum umwandeln vom TO war Date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), deine alternative Funktion war Date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();, sieht für mich gleich aus?


Außerdem war die Frage nicht ab wann "LocalDate" in JDK implementiert wurde, sondern wie man Date nach LocalDate konvertiert.

Ne, die Frage war, wie man das nullsafe macht.
Der Hinweis, dass ab Java 8 als Alternative auch java.sql.Date#toLocalDate geht, ist halt recht überflüssig, wenn der ganze Thread von Java 8-Klassen handelt ;) genausogut hätte man schreiben können, dass es nur geht, falls man Java nutzt.


Edit: sorry, dass es etwas schnippisch klingt, aber als ich geschrieben hab gab’s im zitierten Beitrag noch keine Smiley die den etwas netter klingen lassen...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G convert Optional<Date> into Optional<LocalDate> Java Basics - Anfänger-Themen 6
Flo :3 Variablen Type dismatch: cannot convert from string to int Java Basics - Anfänger-Themen 9
A convert String in Datumsformat Java Basics - Anfänger-Themen 2
E Input/Output convert string to two dimensional char and output = matrix Java Basics - Anfänger-Themen 2
T Cannot convert from Integer to int Java Basics - Anfänger-Themen 12
M Meldung "cannot convert flom boolean to boolean[]" Java Basics - Anfänger-Themen 3
C cannot convert from int to boolean Java Basics - Anfänger-Themen 3
J convert int to hexadecimal? Java Basics - Anfänger-Themen 5
sc0p convert 2 Jar - GUI nicht komplett Java Basics - Anfänger-Themen 9
J Convert object to boolean Java Basics - Anfänger-Themen 7
K Convert UTF-8 String to ANSI Java Basics - Anfänger-Themen 11
K Convert Properties to File Java Basics - Anfänger-Themen 2
S Convert InetAddress to String Java Basics - Anfänger-Themen 3
B Fehlermeldung: cannot convert from int to byte Java Basics - Anfänger-Themen 2
S StringToInt() - Type mismatch: cannot convert from... Java Basics - Anfänger-Themen 16
S Fehlermeldung Cant convert java.awt.TextField to int Java Basics - Anfänger-Themen 12
G "cannot convert from long to int" - problem Java Basics - Anfänger-Themen 9
S Cannot Convert Array Java Basics - Anfänger-Themen 2
Beowend String zu Date parsen Java Basics - Anfänger-Themen 1
MiMa Date vs LocalDate/LocalDateTime Java Basics - Anfänger-Themen 13
I Ical4j / Kalender einlesen von URL - Fehler: "Unparseable date" Java Basics - Anfänger-Themen 16
M Umgang mit dem Type "Date" Java Basics - Anfänger-Themen 6
sserio Date Library Frage Java Basics - Anfänger-Themen 9
P "Datestamp" to Date oder Timestamp Java Basics - Anfänger-Themen 15
B Date - Vergleich (equals / after) ? Java Basics - Anfänger-Themen 3
J Methoden toString()-Date Formatter Java Basics - Anfänger-Themen 8
L Java Date Format ändern Java Basics - Anfänger-Themen 5
B java.util.Date noch zeitgemäß? Java Basics - Anfänger-Themen 6
B java.util.Date berechnen Java Basics - Anfänger-Themen 11
B Date - Umwandlung OffsetDateTime Java Basics - Anfänger-Themen 11
B Date Konvertierung Java Basics - Anfänger-Themen 0
B Date formatieren Java Basics - Anfänger-Themen 13
L Datentypen Date API - diese Woche bestimmen Java Basics - Anfänger-Themen 1
D Unterschied Date - Calendar Java Basics - Anfänger-Themen 1
Thallius Date für DatePicker formatieren aber wie? Java Basics - Anfänger-Themen 9
A Vererbungshierachie und java.util.Date Java Basics - Anfänger-Themen 31
agent47 Java 8 Locale Date Time Java Basics - Anfänger-Themen 2
S String zu Date Java Basics - Anfänger-Themen 6
L Java String to date? Java Basics - Anfänger-Themen 2
H Repräsentation von DateTime (Joda) in Java Util Date überführen Java Basics - Anfänger-Themen 3
I Date zu 01.01.<year> setzen Java Basics - Anfänger-Themen 1
H java date-time parser Java Basics - Anfänger-Themen 1
S Date parsen klappt nicht richtig Java Basics - Anfänger-Themen 3
A String to Date parsing Java Basics - Anfänger-Themen 2
M TimeUnit ms nach date convertieren Java Basics - Anfänger-Themen 2
B Date Object mit Millisekunden Ausgabe Java Basics - Anfänger-Themen 8
K Best Practice Date in einem Konstruktor angeben Java Basics - Anfänger-Themen 5
K Datum und Uhrzeit als Date Objekt Java Basics - Anfänger-Themen 10
K Date cannot be cast to java.lang.Integer Java Basics - Anfänger-Themen 4
N Change date Format Java Basics - Anfänger-Themen 2
P Date oder Kalender? Was soll man verwenden? Java Basics - Anfänger-Themen 2
M Simple Date Format Java Basics - Anfänger-Themen 2
S Erste Schritte Berechnung mit Daten aus CSV und Date Objekt Java Basics - Anfänger-Themen 2
D Java Date/Calendar Problem Java Basics - Anfänger-Themen 4
Kenan89 Java Date List Java Basics - Anfänger-Themen 4
L Date differenz Java Basics - Anfänger-Themen 6
algebraiker TreeMap<Date,Object> navigieren? Java Basics - Anfänger-Themen 24
B Datentypen Date Java Basics - Anfänger-Themen 11
K konvertiere Millisekunden in ein Utc Date Objekt Java Basics - Anfänger-Themen 5
G Date - Calender | "Vergleich" Java Basics - Anfänger-Themen 3
M Mal wieder Probleme mit Date Java Basics - Anfänger-Themen 9
A Datentypen Datum mit "May" zu Date parsen Java Basics - Anfänger-Themen 6
Blindxantos Datentypen Probleme bei util.Date zu sql.Date Java Basics - Anfänger-Themen 5
R Tage subtrahieren von einem Date() Java Basics - Anfänger-Themen 6
I Date um 1 Jahr erhöhen? Java Basics - Anfänger-Themen 17
F GMT für Date Objekte festlegen Java Basics - Anfänger-Themen 5
F Sekunden abschneiden bei Date Java Basics - Anfänger-Themen 4
L int TimeZone für Date Java Basics - Anfänger-Themen 3
N alter mit Date ausrechnen Java Basics - Anfänger-Themen 10
turmaline String zu Date konvertieren -> Unparseable date Java Basics - Anfänger-Themen 5
T java.util.Date Java Basics - Anfänger-Themen 5
C Date() ->das Datum von gestern ausgeben Java Basics - Anfänger-Themen 11
M Datentypen Wie initialisiere ich ein Objekt vom Typ Date? Java Basics - Anfänger-Themen 3
H OOP java.sql.Date does not have a no-arg default constructor Java Basics - Anfänger-Themen 2
L Date subtrahieren? Java Basics - Anfänger-Themen 10
G Date von heute mit Uhrzeit erzeugen Java Basics - Anfänger-Themen 9
H Unterschied zwischen 2 Date in Sekunden am einfachsten? Java Basics - Anfänger-Themen 5
I Null - Wert bei Date (Mysql) Java Basics - Anfänger-Themen 2
H Date-Objekt um einen Monat "erhöhen" Java Basics - Anfänger-Themen 7
A The method getYear() from the type Date is deprecated Java Basics - Anfänger-Themen 6
P Datum: String in Date umwandeln Java Basics - Anfänger-Themen 7
T mit Typen Date rechnen Java Basics - Anfänger-Themen 6
F java.sql.Date Differenz Java Basics - Anfänger-Themen 3
P Date geht auf UNIX 1 Stunde nach Java Basics - Anfänger-Themen 14
M Date-Problem Java Basics - Anfänger-Themen 3
H Einfaches Date-parse problem Java Basics - Anfänger-Themen 2
Developer_X Date Java Basics - Anfänger-Themen 4
Antoras Daten aus Date lesen Java Basics - Anfänger-Themen 3
G String in Date konvertieren Java Basics - Anfänger-Themen 6
W 2 Date()-Daten vergleichen Java Basics - Anfänger-Themen 6
W String in Date Java Basics - Anfänger-Themen 4
G SpinnerDateModel stard & end nur Date? Java Basics - Anfänger-Themen 4
H Date-Object "um eins erhöhen! Java Basics - Anfänger-Themen 4
G Anfänger: Problem mit Date Java Basics - Anfänger-Themen 3
S NullPointerException bei Date.setTime() Java Basics - Anfänger-Themen 3
M 2 Date()-Datum´s vergleichen Java Basics - Anfänger-Themen 9
C Java 7 Date Java Basics - Anfänger-Themen 9
L Timer und Date Java Basics - Anfänger-Themen 2
G SQL Date zu JAVA Date Java Basics - Anfänger-Themen 4
G String in Date casten. Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben