Java@JsonFormat设置默认时区(timezone)是GMT,如果实体类中日期字段属性使用了注解@JsonFormat,例如:
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date effectiveDate;
thymeleaf使用[[${Object}]]输出对象会调用注解@JsonFormat进行日期格式化,如果@JsonFormat没有声明使用的时区,格式化日期时将使用默认的时区GMT,会导致输出日期与实际日期少8小时。
因此,在使用thymeleaf的[[${Object}]]输出对象时,Java实体类需要加上时区声明,例如:
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone ="GMT+8")
private Date effectiveDate;
避免出现日期输出不准确问题。