RESTアプリケーションを作成するためのスプリングブートに取り組んでいます。そして、私は以下に示すようにDTOを持っています:
public class Subject {
private String uid;
private String number;
private String initials;
private Date dateOfBirth;
そして、Spring-Hateosを使用しており、コントローラーの戻りタイプはResponseEntity<Resources<Resource<Subject>>>
です。 「yyyy-mm-dd」形式で日付を表示する必要があります。
BeanをJSON形式にシリアル化するためにアプリケーションでJackson整数化を使用している場合、Jackson注釈 @ JsonFormat を使用して、日付を指定された形式にフォーマットできます。
日付でyyyy-MM-dd
形式に日付が必要な場合、この形式を適用するフィールドの上に@JsonFormat
を指定する必要があります。
例えば :
public class Subject {
private String uid;
private String number;
private String initials;
@JsonFormat(pattern="yyyy-MM-dd")
private Date dateOfBirth;
//Other Code
}
ドキュメントから:
プロパティの値をシリアル化する方法の詳細を構成するために使用される注釈。
お役に立てれば。
ほとんどの場合、「yyyy-MM-dd」の小さい「m」は分セクションを意味します。
あなたは2つのことをすべきです
spring.jackson.serialization.write-dates-as-timestamps:false
にapplication.properties
を追加すると、日付のタイムスタンプへの変換が無効になり、代わりにISO-8601準拠の形式が使用されます
dateOfBirth
プロパティに@JsonFormat(pattern="yyyy-MM-dd")
を使用して、ゲッターメソッドに注釈を付けることにより、フォーマットをカスタマイズできます。
Spring Bootバージョン1.2.0.RELEASEから開始して、すべてのクラスapplication.properties
にデフォルトの日付形式を設定するためにspring.jackson.date-format
に追加できるプロパティがあります。
日付形式の例では、次の行をプロパティファイルに追加します。
spring.jackson.date-format=yyyy-MM-dd
すべての日付の形式を変更する場合は、Builderカスタマイザーを追加できます。次に、日付をISO 8601に変換するBeanの例を示します。
@Bean
public Jackson2ObjectMapperBuilderCustomizer jsonCustomizer() {
return new Jackson2ObjectMapperBuilderCustomizer() {
@Override
public void customize(Jackson2ObjectMapperBuilder builder) {
builder.dateFormat(new ISO8601DateFormat());
}
};
}