【问题标题】:Date is coming one less than the actual date in json response日期比 json 响应中的实际日期少一
【发布时间】:2018-12-27 12:09:29
【问题描述】:

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

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

{    
    "createdDate" : "2018-07-10" 
}

现在,当我调用 Get 请求时,我低于 json,其中日期比数据库中的日期小 -1(输入 json)。

{     
    "createdDate" : "2018-07-09"
}

这是我在 pojo 中的“createdDate”列:

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

【问题讨论】:

  • 会不会是时区问题?像您的 GET 请求的数据库服务器时区与应用程序服务器时区不同吗?
  • 很抱歉,根据您提供的信息,我们无法回答问题。您至少会在数据库中指定数据类型并显示如何从那里检索日期。
  • timezone=" UTC " 您是否将本地时间更改为 UTC 时间?
  • Date 类设计不佳且早已过时。尽管它的名称不代表日期(这可能也是您的问题的部分原因)。如果您的 JSON 库有任何方法可以处理它,请改用 LocalDate

标签: java json date


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 2012-11-23
    相关资源
    最近更新 更多