我需要使用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;
方括号的效果是按照此处Deserialize "Zulu" time in ISO8601 format in jackson的建议使毫秒可选。
然而,问题是发送这些的服务会删除尾随零,所以如果我有.100毫秒,它们会变为 2016-11-28T10:34:25.1Z ,如果我有.220毫秒它们看起来像 2016-11-28T10:34:25.22Z 所以我在这种情况下有点一个或两个数字。
这再次违反了上面显示的格式,它只接受所有三位数字。我试图使用格式[S [S [S]]],但它并不好。
如何指定JSON格式,因此我有0到3毫秒的数字?
答案 0 :(得分:0)
您可以按如下顺序使用多种可选格式:
"yyyy-MM-dd'T'HH:mm:ss.[SSS][SS][S]Z"