我的对象中有以下声明:

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSX")
private ZonedDateTime start;

当我解析时间戳(如2016-12-08T12:16:07.124Z(使用Jackson Json De-serilaizer))时,它可以正常工作,但是一旦我收到时间戳而没有毫秒(例如“2016-12-08T12:16:07Z ”),则会引发异常。

如何在格式说明中使毫秒为可选?

最佳答案

如果您使用的是Java 8,请尝试在方括号.SSS中指定[.SSS]

JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss[.SSS]X")

08-24 16:45