DateTimeFormatter nach LocalDateTime, wenn dd.MM.yyyy oder dd.MM.yyyy mm:hh

Diskutiere DateTimeFormatter nach LocalDateTime, wenn dd.MM.yyyy oder dd.MM.yyyy mm:hh im Java Basics - Anfänger-Themen Bereich.
B

beta20

Hallo,

ich bekomme von einem Output ein String im Format: dd.MM.yyyy, allerdings ist das dynamisch und ich könnte es auch mit Uhrzeit bekommen.
Wie schaffe ich es immer nach LocalDateTime zu konvertieren, egal, ob dd.MM.yyyy oder dd.MM.yyyy mm:hh etc.?

Java:
String pattern = "dd.MM.yyyy";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
return LocalDateTime.parse(value, formatter);
 
B

beta20

Ok, das sieht erst mal gut aus:

Java:
private LocalDateTime generateDate(String sDate, DateTimeFormatter format) {

        TemporalAccessor dt = format.parseBest(sDate, LocalDateTime::from, LocalDate::from, LocalTime::from,
                YearMonth::from);

        if (dt instanceof LocalDate) {
            return ((LocalDate) dt).atStartOfDay();

        } else if (dt instanceof LocalTime) {
            return ((LocalTime) dt).atDate(LocalDate.now());

        } else if (dt instanceof YearMonth) {
            return ((YearMonth) dt).atDay(1).atStartOfDay();

        } else {
            return LocalDateTime.from(dt);
        }
    }
 
MoxxiManagarm

MoxxiManagarm

kannte ich noch gar nicht
Same here, aber wenn ich vor dem Problem stehen würde, dann würde ich versuchen das schon vorher abzufangen - entweder durch saubere Schnittstellenspezifikationen (falls die verschiedenen Formate von anderen Systemen kommen) oder durch Inputfeld-Masken o.Ä. (falls es Benutzereingaben sind).
 
Thema: 

DateTimeFormatter nach LocalDateTime, wenn dd.MM.yyyy oder dd.MM.yyyy mm:hh

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben