Je travaille sur Spring Boot pour créer une application REST. Et j'ai un DTO comme indiqué ci-dessous:
public class Subject {
private String uid;
private String number;
private String initials;
private Date dateOfBirth;
Et j'utilise Spring-Hateos et le type de reurn de mon contrôleur est ResponseEntity<Resources<Resource<Subject>>>
. J'ai besoin que la date soit affichée au format "aaaa-mm-jj".
Si vous avez une intégration de Jackson avec votre application pour sérialiser votre bean au format JSON, vous pouvez utiliser une anotation de Jackson @ JsonFormat pour formater votre date au format spécifié.
Dans votre cas, si vous avez besoin de votre date en yyyy-MM-dd
format vous devez spécifier @JsonFormat
au-dessus de votre champ sur lequel vous souhaitez appliquer ce format.
Par exemple :
public class Subject {
private String uid;
private String number;
private String initials;
@JsonFormat(pattern="yyyy-MM-dd")
private Date dateOfBirth;
//Other Code
}
De docs:
l'annotation utilisée pour configurer les détails de la manière dont les valeurs des propriétés doivent être sérialisées.
J'espère que cela t'aides.
Vous voulez probablement dire "aaaa-MM-jj" petit dernier 'm' impliquerait une section de minutes.
Tu devrais faire deux choses
ajoutez spring.jackson.serialization.write-dates-as-timestamps:false
dans votre application.properties
, cela désactivera la conversion des dates en horodatages et utilisera à la place un format conforme à ISO-8601
Vous pouvez personnaliser le format en annotant la méthode getter de votre propriété dateOfBirth
avec @JsonFormat(pattern="yyyy-MM-dd")
À partir de Spring Boot version 1.2.0.RELEASE, vous pouvez ajouter une propriété à votre application.properties
pour définir un format de date par défaut pour toutes vos classes spring.jackson.date-format
.
Pour votre exemple de format de date, vous ajouteriez cette ligne à votre fichier de propriétés:
spring.jackson.date-format=yyyy-MM-dd
Si vous souhaitez modifier le format pour toutes les dates, vous pouvez ajouter un personnaliseur de générateur. Voici un exemple de haricot convertissant les dates en ISO 8601:
@Bean
public Jackson2ObjectMapperBuilderCustomizer jsonCustomizer() {
return new Jackson2ObjectMapperBuilderCustomizer() {
@Override
public void customize(Jackson2ObjectMapperBuilder builder) {
builder.dateFormat(new ISO8601DateFormat());
}
};
}