Gibt es eine Möglichkeit, ein Datum String
in LocalDateTime
zu konvertieren, wobei das Format "yyyy-MM-dd"
?
Wenn ich das versuche:
%Vor%Ich habe diese Ausnahme:
%Vor% Ich weiß, dass das Hauptproblem darin besteht, dass das Muster weder die Stunde noch die Minute enthält.
Was aber, wenn ich eine Methode erstellen möchte, die eine String
und eine DateTimeFormatter
bekommt und ich mit LocalDateTime
Gibt es eine richtige, nette Lösung?
BEARBEITEN:
Mein Ziel, eine Methode zu machen, die eine String
und eine DateTimeFormatter
bekommt
Und kommt mit einem LocalDateTime
zurück.
Das Muster kann alles sein (was gültig ist).
Verwenden Sie LocalDate
, um ein localDate und dann Sie zu erstellen kann den Zeitabschnitt hinzufügen, wenn Sie ihn brauchen:
oder LocalDateTime
wenn Sie nur ein leeres Zeitteil benötigen
BEARBEITEN:
Sehen Sie sich diese Lösung an, mit der Sie Ihren dynamischen Parser erstellen können:
%Vor% Sie können "2017-03-13" nicht in LocalDateTime
konvertieren, da keine Zeitinformation in der Zeichenfolge vorhanden ist, sondern nur Datum. Sie können es in ein LocalDate
Danach können wir es in LocalDateTime
Zu Beginn des Tages können Sie Folgendes verwenden:
LocalDate.parse ("2017-10-18", DateTimeFormatter.ofPattern ("yyyy-MM-dd")) .atStartOfDay (). atOffset (ZoneOffset.UTC) .format (DateTimeFormatter.ISO_DATE_TIME)
Für das Ende des Tages können Sie verwenden:
LocalDate.parse ("2017-10-18", DateTimeFormatter.ofPattern ("yyyy-MM-dd")) .atStartOfDay (). plusHours (23) .plusMinutes (59) .plusSeconds (59) .atOffset ( ZoneOffset.UTC) .format (DateTimeFormatter.ISO_DATE_TIME)
Für localDateTime können Sie Folgendes verwenden:
LocalDate.parse ("2017-10-18", DateTimeFormatter.ofPattern ("yyyy-MM-dd")). atTime (LocalTime.now ()) .atOffset (ZoneOffset.UTC) .format (DateTimeFormatter.ofPattern ("JJJJ-MM-TT'T'HH: mm: ss'Z '"))
Ergebnis: 2017-10-18T00: 00: 00Z 2017-10-18T23: 59: 59Z 2017-10-18T14: 45: 35Z
Tags und Links java java-8 date date-parsing