Une date d'anniversaire s'affiche sous le format: dd/MM/yyyy. Ce format varie d'une région à une autre. Une telle date ne possède pas d'heure.
Si vous ne spécifiez par le bon type dans votre entité, vos risques de ne pas obtenir le format désiré à l'affichage.
L'annotation Temporal offre 3 valeurs: Date, Time et Timestamp. Le time est inutile pour un anniversaire.
Selon l'annotation, voici le type de donnée et le type en bd..
@Temporal(javax.persistence. TemporalType.DATE)
Data type date
DB data type date
@Temporal(javax.persistence. TemporalType.TIMESTAMP)
Data type timestamp
DB data type datetime
Si vous n'en spécifiez aucun, vous obtiendrez ceux de TemporalType.TIMESTAMP.
@Entity
public class personne{
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
private Date anniversaire;
...
}
Au niveau de votre DTO, vous devez spécifiez le format.
private Date birthdate;
La valeur qui sera transféré sera
"anniversaire":"17/06/1980" au lieu
"anniversaire":"1980-06-17"
Si vous utiliser l'annotation DateTimeFormat de spring
@DateTimeFormat(pattern = "dd/MM/yyyy") dans votre DTO, vous allez obtenir une valeur numérique similaire à 14360400000.
Aucun commentaire:
Enregistrer un commentaire