Jackson を使用して2016-11-28T10:34:25.097Z形式の時刻をJava8 の ZonedDateTime に逆シリアル化する必要があります。
ZonedDateTime の ObjectMapper を正しく構成し、DTO のコードにフィールドを持っています
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.[SSS]Z")
private ZonedDateTime updatedAt;
ここで提案されているように、角括弧の効果は、ミリ秒をオプションにすることです。
ただし、問題は、これらを送信するサービスによって末尾のゼロが削除されるため、.100 ミリ秒の場合は2016-11-28T10:34:25.1Zになり、.220 ミリ秒の場合は 2016-11 のようになります。 -28T10:34:25.22Zその場合、ドットの後に1 つまたは 2 つの数字があります。
これも上記の形式に違反しており、3 桁の数字をまったく受け入れないか、3 桁すべてしか受け入れません。フォーマット [S[S[S]]] を使用しようとしましたが、うまくいきませんでした。
0 ~ 3 ミリ秒の桁数になるように JSON 形式を指定するにはどうすればよいですか?