我创建了Spring Boot REST Api,我需要处理包含LocalDateTime和LocalDate变量的REST Controller对象。
这是我的示例对象:
public class Foo {
private LocalDateTime dateTime;
private LocalDate date;
// others variables, geeters and setters
}
和我的控制员:
@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 ..但控制器按时间11:59命中。 你能告诉我春假的准确日期和时间吗?我在application.properties中也有这个:
spring.jackson.serialization.write-dates-as-timestamps=false
感谢您的建议。
答案 0 :(得分:0)
请更正你在11点59分过去的json中的描述,但是你说你要经过12:59。
根据你提到的不同,这是因为时区。
d.toISOString以UTC格式提供日期。但是,.pull-right
给出时区(系统时区)特定日期,在您的情况下为CET(中欧时间),即utc + 01:00表示提前1小时。
答案 1 :(得分:0)
LocalDateTime
does not hold any time-zone information. Assuming that you want time without timezone (local time) and receive the time for the client/user, you should send without timezone:
{
"dateTime":"2018-02-05T12:59:11.332",
...
}
Note from your example, time part is changed to 12:59, and Z for UTC timezone is removed.