在Spring 4.0中获取请求的时区信息

Sha*_*wal 4 grails timezone spring-mvc

在Web请求对象中获取时区信息有一个新功能.请参阅http://docs.spring.io/spring/docs/4.0.x/spring-framework-reference/html/mvc.html#mvc-timezone中的 16.9.1部分

但是我无法解决我们如何从请求中获取时区信息或者我应该使用哪种方法来获取时区信息?

查看和关注源代码后,访问https://github.com/spring-projects/spring-framework/blob/v4.0.7.RELEASE/spring-webmvc/src/main/java/org/springframework/web/servlet/ support/RequestContext.java#L242,我试图手动打印

println WebUtils.getSessionAttribute(request, SessionLocaleResolver.class.getName() + ".TIME_ZONE")
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

M. *_*num 12

只需添加类型的方法参数TimeZone即可获得它.

@RequestMapping
public String foo(TimeZone timezone) { ... }
Run Code Online (Sandbox Code Playgroud)

应该这样做.

如果你真的想自己动手使用这个RequestContextUtils.getTimeZone(request)方法.

@RequestMapping
public String foo(HttpServletRequest request) {
    TimeZone timezone = RequestContextUtils.getTimeZone(request);
    ...
}
Run Code Online (Sandbox Code Playgroud)

  • 支持取决于`TimeZoneAwareLocaleContext` 如何设置/配置我还不清楚(还)。但基本上它使用 Spring 使用的机制来设置/确定 `TimeZone`。顺便说一句,我希望您会收到机器/服务器的默认时区。您是否在配置中使用了 `<mvc:annotation-driven />`? (2认同)