【问题标题】:JSON date changedJSON 日期已更改
【发布时间】:2016-08-11 15:35:06
【问题描述】:

我有一个网络应用程序,用户可以在其中将消息发布到一个 RESTful API,以便可以将这些信息保存在数据库中。

我的问题是从 UI 发送数据时,发送的日期是 "effStartDate":"2016-08-13" ,但是当我在 java 代码中看到日期值时,它显示 Fri Aug 12 20:00 :00 EDT 2016。

我使用 AngularJS、Spring 和 iBatis 作为 ORM 工具。附件是从 UI 发送的数据的屏幕截图以及我在后端代码中看到的内容。

谁能帮我解决这个问题?

【问题讨论】:

    标签: java angularjs json spring ibatis


    【解决方案1】:

    您可以在实体中添加注释来实现。 (不得不依赖JackJson的jar) 然后添加必填字段 "@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")"

    【讨论】:

    • 我试过了,从 UI 发送的日期 - “2016-08-13 00:00:00”,我在后端看到的日期是“Fri Aug 12 12:00:00 EDT 2016”跨度>
    【解决方案2】:

    您可以将日期视为字符串。像这样的东西 @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")

    【讨论】:

      【解决方案3】:

      您可以尝试使用 javascript 代码中的这种使用日期格式通过 REST api 向服务器发送请求。

      例如:

      effStartDate.toISOString();
      

      toISOString() 方法返回简化扩展 ISO 格式的字符串

      【讨论】:

      • 当我尝试这个时,UI Date = "effStartDate":"2016-08-28T00:19:21.000Z" ,在后端看到的数据 Sat Aug 27 20:19:21 EDT 2016跨度>
      • 日期是一个很好的字段类型。您可以使用 ObjectMapper.setDateFormat DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm a z"); 进行 JSON 解析myObjectMapper.setDateFormat(df);
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-29
      • 2022-08-11
      • 1970-01-01
      • 2017-11-29
      • 2015-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多