我已经创建了 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"
...
}
如您所见,我发送时间为 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/