Je rencontre un problème lors de la conversion d'une date qui n'existe pas réellement à l'aide de l'annotation @DateTimeFormat
.@DateTimeFormat avec erreur d'heure d'été lors de la conversion
Par exemple, quand je mets la date 15/10/2017, avec l'annotation dans mon entité comme suit:
@Column(nullable = false)
@NotNull
@DateTimeFormat(pattern = "dd/MM/yyyy")
private Date dataVisita;
Je reçois l'erreur:
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)
Je comprends que la erreur me dit que la date 15/10/2017 00:00:00
n'existe pas réellement, mais je veux convertir en 15/10/2017 01:00:00
, en ignorant de cette façon le problème et en trouvant la date correspondante.
Y a-t-il un moyen pour moi de surcharger l'annotation @DateTimeFormat
ou un moyen de pointer le formateur pour qu'il soit indulgent?
'Signalez ce que vous dites et dites ce que vous voulez dire' Vous essayez actuellement de mettre une date dans un objet qui représente la date et l'heure. Pouvez-vous utiliser LocalDate ou êtes-vous coincé avec Date? – mpkorstanje
Vous pouvez créer un désérialiseur personnalisé. AFAIR utilise Jackson sous le capot. L'annotation 'JsonDeserialize' devrait aider. [Exemple Jackson-Deserialization.] (Http://www.baeldung.com/jackson-deserialization) –
Essayez d'utiliser '@DateTimeFormat (iso = ISO.DATE_TIME)', il n'ignorera pas l'heure dans la chaîne –