Java 日期比json响应中的实际日期少一个

Java 日期比json响应中的实际日期少一个,java,json,date,Java,Json,Date,当我调用Get服务时,在输出json中,“createdDate”比数据库中的实际日期(在输入json中)少-1 例如,在输入json中,下面是应该通过post请求存储在数据库中的日期 { "createdDate" : "2018-07-10" } 现在,当我调用Get请求时,我得到的是低于json的数据,其中日期比数据库中的日期(输入json)小-1 以下是我在pojo中的“createdDate”列: @JsonFormat(shape=JsonFormat.Shape

当我调用Get服务时,在输出json中,“createdDate”比数据库中的实际日期(在输入json中)少-1

例如,在输入json中,下面是应该通过post请求存储在数据库中的日期

{    
    "createdDate" : "2018-07-10" 
}
现在,当我调用Get请求时,我得到的是低于json的数据,其中日期比数据库中的日期(输入json)小-1

以下是我在pojo中的“createdDate”列:

@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd", timezone="UTC")
@Column(name="created_date")
private Date createdDate;

发生这种情况最明显的原因是,如果您的数据库以utc返回日期,并且您将其与本地日期混淆,则将数据库中的日期转换为本地日期会起作用。

参考:这可能是时区问题吗?例如,GET请求的数据库服务器时区与应用程序服务器时区不同?很抱歉,根据您提供的信息,我们无法回答此问题。您至少需要在数据库中指定数据类型,并显示如何从中检索日期。timezone=“UTC”是否将本地时间更改为UTC时间?类的设计很差,而且很早就过时了。尽管它的名字并不代表日期(这可能也是你问题的部分原因)。如果JSON库有任何方法可以处理它,请改用
LocalDate
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd", timezone="UTC")
@Column(name="created_date")
private Date createdDate;