Ich versuche, das Format eines String
Datum erhalten EEEE MMMM d
-MM/d/yyyy
durch, zuerst zu ändern, es in eine LocalDate
Umwandlung und dann einen Formatierer von einem anderen Muster auf die LocalDate
genommen werden, bevor das Parsen in String
wieder.Java: Können nicht LOCALDATE von TemporalAccessor
Hier ist mein Code:
private String convertDate(String stringDate)
{
//from EEEE MMMM d -> MM/dd/yyyy
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
.parseCaseInsensitive()
.append(DateTimeFormatter.ofPattern("EEEE MMMM d"))
.toFormatter();
LocalDate parsedDate = LocalDate.parse(stringDate, formatter);
DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("MM/d/yyyy");
String formattedStringDate = parsedDate.format(formatter2);
return formattedStringDate;
}
Allerdings habe ich diese Ausnahme Nachricht bekommen, dass ich nicht wirklich verstehen:
Exception in thread "main" java.time.format.DateTimeParseException: Text 'TUESDAY JULY 25' could not be parsed: Unable to obtain LocalDate from TemporalAccessor: {DayOfWeek=2, MonthOfYear=7, DayOfMonth=25},ISO of type java.time.format.Parsed
at java.time.format.DateTimeFormatter.createError(DateTimeFormatter.java:1920)
Nun, Sie können kein Datum ohne ein Jahr haben. – RealSkeptic
Sie haben nicht gesagt, was Sie erwarten, das Jahr zu sein. Das laufende Jahr? Immer 2017? Berechnen Sie das Jahr basierend auf der Kombination von Wochentag und Wochentag? Entweder KayV oder Hugo ist abhängig von Ihrem Anwendungsfall am nächsten. – JodaStephen
Near-Duplicate von [Java Autocomplete/Format Datum von MM-DD-Eingabe] (https://StackOverflow.com/questions/43858077/java-autocomplete-format-date-from-mm-dd-input) –