为什么@JsonFormat的YYYY-MM-dd模式序列化2023-12-31 23:59:59.907到2024-12-31,而不是使用fasterxml的2023-12-31?

ddhy6vgd  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(341)

此问题在此处已有答案

Deserialize a Date field of POJO using Jackson - Unable to deserliazing date field correctly(1个答案)
Formatting Java Instant to "YYYYMMdd" adds an extra year? [duplicate](3个答案)
Y returns 2012 while y returns 2011 in SimpleDateFormat(5个回答)
上个月关门了。
数据库中有一个日期值字段

2023-12-31 23:59:59.907

字符串
然后将其序列化为JSON,

/**
     * Tariff end
     */
    @JsonFormat(pattern = "YYYY-MM-dd")
    @ApiModelProperty(notes = "tariff end date")
    private Date endDate;


为什么用fasterxml序列化到2024-12-31而不是2023-12-31?如何解决这个错误?

vtwuwzda

vtwuwzda1#

日期字段的序列化问题可能是由于在@JsonFormat annotation中使用了错误的格式模式。您应该使用“yyyy-MM-dd”,而不是“YYYY-MM-dd”,它使用基于周的年份表示年份,它使用日历年表示年份。
要修复此错误,请将@JsonFormat注解中的模式更改为“yyyy-MM-dd”,如下所示:

@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(notes = "tariff end date")
private Date endDate;

字符串

相关问题