gpt4 book ai didi

java - Spring-boot @RequestParam 注解将请求中的 UTC 时区转换为本地时区

转载 作者:太空宇宙 更新时间:2023-11-04 09:39:37 24 4
gpt4 key购买 nike

我有一个带有 Controller 的 spring-boot 应用程序,该 Controller 处理一些带有作为查询参数传递的日期的请求。例如请求的 URI:

http://localhost:8081/test/read?from=2018-01-01T00:00:00Z

但是,使用 @RequestParam 注释从 URI 解析日期,我得到的是本地时区的日期,而不是 UTC 时区(如“Z”所示)。

我尝试在 application.properties 中设置 jdbctemplate 时区、java.util.timezone 和 spring.jackson.time_zone ,但这没有帮助。

@RequestMapping(value = "test/read", method = RequestMethod.GET)
public ResponseEntity<String> get(
@RequestParam(value="from") @DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'") final Date from)
// value of date in 'from' is in local timezone

由于传递给 @DateTimeFormat 的模式中的尾随“Z”,该值应采用 UTC 时区。

对于我在这里缺少的东西有什么想法吗?

最佳答案

当您启动应用程序时,VM 会自动继承本地计算机的默认时区。您可以按如下方式更新应用程序的默认时区。

@SpringBootApplication
public class Application {

public static void main(String[] args) {
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));

SpringApplication.run(Application.class, args);
}

}

关于java - Spring-boot @RequestParam 注解将请求中的 UTC 时区转换为本地时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56121576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com