Webサービスで起業を目指すプログラマーblog

仕事で使ったプログラミング、サーバー周りで役に立つこと、Webサービス開発に必要な技術情報、モバイル情報を書いてます。わかりやすく見やすくをモットーにしています。

SpringBootのJacksonで日付フォーマットを設定する方法

SpringBootのコントローラーの戻り値に@ResponseBodyを設定して、オブジェクトでJSONを返すとき、日付型はlongで扱われます。
それを適切は日付フォーマットにするには、設定ファイル、アノテーションで設定できます。

application.propertiesによる設定

アプリケーション全体の設定として適用されます。
タイムゾーン設定をしないと、日付がずれるので必ず設定しておきましょう。

application.properties

spring.jackson.date-format=yyyy/MM/dd'T'HH:mm:ss.SSSZ
spring.jackson.time-zone=Asia/Tokyo

アノテーションによる設定

JSONマッピングするオブジェクトクラスの日付フィールドで@JsonFormatアノテーションを設定します。
アノテーションでもタイムゾーンの設定ができます。

オブジェクトクラス

@JsonFormat(pattern = "yyyy/MM/dd")
private Date date;

@JsonFormat(pattern = "yyyy/MM/dd", timezone = "Asia/Tokyo")
private Date date;