java如何使用JsonFormat注释或任何其他spring日期注释验证即时类型字段的ISO标准格式的日期值?
我正在尝试使用ISO
模式pattern="yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
验证Java中Instant
字段的有效日期格式,我收到一个错误,指出JSON parse error: Cannot deserialize value of type java.time.Instant from String \"2019-11-25T14:43:22.602Z\"
有人能帮我验证使用注释的即时类型字段的日期吗
这是我在代码中给出的方式:
@JsonFormat(shape = JsonFormat.Shape.STRING ,pattern="yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
private Instant processingEndDate;
或
@JsonFormat(pattern="yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
private Instant processingEndDate;
我用于此Instant
类型的值和格式未得到解析
Sample value: 2019-11-25T14:43:22.602Z
Format I used:yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
# 1 楼答案
使用
Z
-不要忽略它不要在
Z
周围加引号。将'Z'
更改为Z
。使用yyyy-MM-dd'T'HH:mm:ss.SSSZ
。引号使Z
字符未经处理,被忽略但是
Z
字符提供了重要信息:它表示与UTC的偏移量为零小时分秒试试默认设置
此外,您可能根本不需要指定格式化模式。此格式为标准ISO 8601格式。java。time类在解析/生成字符串时默认使用这些标准格式。您的格式是
java.time.Instant
的特定默认格式因此,虽然我不知道您的特定JSON处理库,但我建议您尝试完全不指定格式。查看默认值是否能完成任务