convert Optional<Date> into Optional<LocalDate>

guguli

Bekanntes Mitglied
Hallo zsammen,

ich möchte gerne Optional<Date> in Optional<LocalDate> zu wandeln.

Code:
protected Optional<Localdate> getPruefDatum(Object entity) {
        if(entity instanceof KlasseA) {
            return Optional.of((KlasseA)entity).map(KlasseA::getDate);
        }
        
        return Optional.empty();
    }

das porblem ist dass getDate ein Date zurück gibt. ich benötige aber LocalDate andiese Stelle. Wie kann ich in dieser Konstrukt von Optional<Date> in Optional<LocalDate> wechseln??

Danke
 
Code:
...
    return Optional.of((KlasseA)entity).map(obj -> convertToLocalDateViaInstant(obj));
}

//kannst du natürlich anpassen:
public LocalDate convertToLocalDateViaInstant(Date dateToConvert) {
    return dateToConvert.toInstant()
      .atZone(ZoneId.systemDefault())
      .toLocalDate();
}
 
Du kannst einfach ein weiteres Optional.map anhängen:
Java:
    if (entity instanceof KlasseA) {
      return Optional
          .of((KlasseA) entity)
          .map(KlasseA::getDate)
          .map(date -> date.toInstant()
                           .atZone(ZoneId.systemDefault())
                           .toLocalDate());
    }
    return Optional.empty();
 
ich möchte nun eine abfrage bzw. überprüfen ob das datum im nächsten Kalender jahr liegt.
Soll heißen wenn heute 21.11.2019 ist dann kann das Datum höchstens 31.12.2020 sein.
wie kann ich das mit LocalDate machen? ne Idee vllt?
 
ich denke so müsste funktionieren oder?

Code:
datum.get().isAfter(LocalDate.of(LocalDate.now().getYear() + 1, 12, 31))
 

Zurück
Oben