konvertiere String "yyyy-MM-dd" in LocalDateTime

7

Gibt es eine Möglichkeit, ein Datum String in LocalDateTime zu konvertieren, wobei das Format "yyyy-MM-dd" ?

ist

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

zurückkehren möchte

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).

    
LakiGeri 13.03.2017, 11:58
quelle

4 Antworten

15

Verwenden Sie LocalDate , um ein localDate und dann Sie zu erstellen kann den Zeitabschnitt hinzufügen, wenn Sie ihn brauchen:

%Vor%

oder LocalDateTime

%Vor%

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%     
Jens 13.03.2017, 12:03
quelle
15

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

konvertieren %Vor%

Danach können wir es in LocalDateTime

umwandeln %Vor%     
Anton Balaniuc 13.03.2017 12:02
quelle
0

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

    
Vinayak Shenoy 18.10.2017 09:13
quelle
-1

Verwenden Sie Joda-Time-XX.jar , um DateTimeFormatter das Datum in das Datumsformat zu konvertieren. Entweder können Sie die Datumszeit im Format (JJJJ-MM-TT HH: MM: SS) oder nur das Datum angeben. In beiden Fällen erhalten Sie Datum und Uhrzeit.

%Vor%     
Sandeep 13.03.2017 12:50
quelle

Tags und Links