Spring 2.3.0 で時刻オフセットの書式コロン付き+09:00みたいに変わっとるやん
   1 min read

正確には jackson-databind 2.11.0 で。

このへん見ると分かるけど、Spring Boot 2.2 系列は jackson-databind 2.10.x が採用されていて、 2.3.0 で 2.11.0 が採用されている。

コード:

1
2
3
4
    @GetMapping("/")
    public Date date() {
        return new Date();
    }

結果(2.2.8):

"2020-06-30T13:46:24.265+0000"

結果(2.3.1):

"2020-06-30T13:47:09.532+00:00"

2.2.x 書式に戻したいならプロパティで:

spring.jackson.date-format=yyyy-MM-dd'T'HH:mm:ss.SSSZ

書式はSimpleDateFormatのリファレンス参照。

ところで上記リファレンスを見ると 2.2.x で 2.3.x の書式にしようとする場合XXXが利用できそうに思われるが+00:00のときZと表現されてしまって同等にはならない。

jackson-databind 的には StdDateFormat#withColonInTimeZone()で設定して欲しいところだと思うが、Spring Boot から簡単に設定変更するパスはなさそう。

いかがでしたか?