当提供的时区与服务器的时区相同时,Rest-Call 中的 @DateTimeFormat(iso = ISO.DATE_TIME) 不起作用
@DateTimeFormat(iso = ISO.DATE_TIME) in Rest-Call not working when supplied time zone same as time zone of the server
我有一个 Spring Boot Rest 调用,如下所示:
@GetMapping(value = "/bar", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Page<Bar>> getBarList(
@RequestParam(name = "date", required = true) @DateTimeFormat(iso = ISO.DATE_TIME) ZonedDateTime date)
服务器的时区是+01:00[Europe/Berlin]。如果我在客户端提供与服务器时区相匹配的日期,则调用将被拒绝为错误请求:
var date = "2019-01-01T00:01:00.000+01:00";
我可以提供任何其他时区,然后客户端调用成功调用服务器端功能,例如:
2019-01-01T00:01:00.000-01:00
2019-01-01T00:01:00.000-07:00
2020-01-31T00:01:00.000Z
事实上,任何正时区都会导致错误的请求错误(例如 2019-01-01T00:01:00.000+02:00 或 2019-01-01T00:01:00.000+03:00)。我应该如何提供时区 +1?
我想我遗漏了一些它是如何工作的。
+
符号需要编码,将 +
符号替换为 %2B
这将解决问题
我有一个 Spring Boot Rest 调用,如下所示:
@GetMapping(value = "/bar", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Page<Bar>> getBarList(
@RequestParam(name = "date", required = true) @DateTimeFormat(iso = ISO.DATE_TIME) ZonedDateTime date)
服务器的时区是+01:00[Europe/Berlin]。如果我在客户端提供与服务器时区相匹配的日期,则调用将被拒绝为错误请求:
var date = "2019-01-01T00:01:00.000+01:00";
我可以提供任何其他时区,然后客户端调用成功调用服务器端功能,例如:
2019-01-01T00:01:00.000-01:00
2019-01-01T00:01:00.000-07:00
2020-01-31T00:01:00.000Z
事实上,任何正时区都会导致错误的请求错误(例如 2019-01-01T00:01:00.000+02:00 或 2019-01-01T00:01:00.000+03:00)。我应该如何提供时区 +1?
我想我遗漏了一些它是如何工作的。
+
符号需要编码,将 +
符号替换为 %2B
这将解决问题