json - 从传入的 JSON 反序列化 LocalDateTime

标签 json spring rest date localdate

我已经创建了 Spring Boot REST Api,我需要处理包含 LocalDateTime 和 LocalDate 变量的 REST Controller 对象。

这是我的示例对象:

public class Foo {
   private LocalDateTime dateTime;
   private LocalDate date;

   // others variables, geeters and setters
}

和我的 Controller :

@PostMapping("/foo")
public void fooApi(@RequestBody @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) Foo foo) {
    // calling some service
}

我已经尝试了上面的解决方案,并发送该 json:

{  
   "dateTime":"2018-02-05T11:59:11.332Z",
   "date":"2018-02-05T11:59:11.332Z"
   ...
}

enter image description here

如您所见,我发送时间为 12:59 ..但 Controller 命中时间为 11:59。 您能告诉我春假的正确日期和时间吗?我在 application.properties 中也有这个:

spring.jackson.serialization.write-dates-as-timestamps=false

感谢您的建议。

最佳答案

LocalDateTime 不包含任何时区信息。假设您需要没有时区的时间(本地时间)并接收客户端/用户的时间,您应该发送没有时区的时间:

{  
  "dateTime":"2018-02-05T12:59:11.332",
   ...
}

请注意您的示例,时间部分更改为 12:59,并且删除了 UTC 时区的 Z。

关于json - 从传入的 JSON 反序列化 LocalDateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48622240/

相关文章:

javascript - ajax 有不同的风格吗?

java - 如何从外部应用程序检索加载在 Tomcat 中的 Spring 上下文

java - 无法解析值 'spring.profiles.active' 中的占位符 "classpath:/ldap-${spring.profiles.active}.properties"

java - Tomcat session 复制 + Spring bean

ruby - 如何在 ruby​​ 中设置 header ['content-type' ] ='application/json'

java - @QueryParam 总是显示 null

c++ - 如何在 json-Glib 中打印 Jsonarray?

php - 将数据插入 MongoDB 中的内部数组

amazon-web-services - AWS API 网关上的剥离 header

json - 创建单个 IAM 用户以仅访问特定的 S3 存储桶