Mam problem z przekształceniem daty, która faktycznie nie istnieje z użyciem adnotacji @DateTimeFormat
.@DateTimeFormat z błędem czasu letniego podczas konwertowania
Na przykład, kiedy ustawić datę 15/10/2017, z dopiskiem w moim podmiot jest w następujący sposób:
@Column(nullable = false)
@NotNull
@DateTimeFormat(pattern = "dd/MM/yyyy")
private Date dataVisita;
otrzymuję błąd:
Failed To Convert Property Value Of Type Java.Lang.String To Required Type Java.Util.Date For Property DataVisita;
Nested Exception Is Org.Springframework.Core.Convert.ConversionFailedException:
Failed To Convert From Type Java.Lang.String To Type @Javax.Persistence.Column @Javax.Validation.Constraints.NotNull @Org.Springframework.Format.Annotation.DateTimeFormat Java.Util.Date For Value 15/10/2017;
Nested Exception Is Java.Lang.IllegalArgumentException:
Cannot Parse "15/10/2017": Illegal Instant Due To Time Zone Offset Transition (America/Sao_Paulo)
Rozumiem, że error informuje mnie, że data 15/10/2017 00:00:00
faktycznie nie istnieje, ale chcę przekonwertować na 15/10/2017 01:00:00
, ignorując w ten sposób problem i znajdując odpowiednią datę.
Czy istnieje sposób, aby zastąpić adnotację @DateTimeFormat
lub sposób na sformułowanie programu formatującego jako łagodnego?
"Oznacza to, co mówisz i mówisz, co masz na myśli" Obecnie próbujesz umieścić datę w obiekcie, który reprezentuje datę i godzinę. Czy możesz użyć LocalDate lub utknąłeś w Date? – mpkorstanje
Można utworzyć niestandardowy deserializator. AFAIR wykorzystuje Jacksona pod maską. Powinna pomóc adnotacja 'JsonDeserialize'. [Przykład Jackson-Deserialization.] (Http://www.baeldung.com/jackson-deserialization) –
Spróbuj użyć '@DateTimeFormat (iso = ISO.DATE_TIME)', to nie będzie ignorować czasu w łańcuchu –