spring i18n 设置时区

Posted wangtg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring i18n 设置时区相关的知识,希望对你有一定的参考价值。

public class TimeZoneChangeInterceptor extends HandlerInterceptorAdapter {

public static final String DEFAULT_PARAM_NAME = "_timeZone";
private static final Logger logger = LoggerFactory.getLogger(TimeZoneChangeInterceptor.class);

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws ServletException {

String newTimeZone = request.getParameter(DEFAULT_PARAM_NAME);
if (StringUtils.isEmpty(newTimeZone)) return true;

TimeZone timeZone = TimeZone.getTimeZone(newTimeZone.toUpperCase());
if (timeZone != null) {
logger.debug("CHANGE TIMEZONE:" + LocaleContextHolder.getTimeZone().getID() + " TO " + timeZone.getID());
LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request);

if (localeResolver instanceof LocaleContextResolver) {
((LocaleContextResolver) localeResolver).setLocaleContext(request, response, new SimpleTimeZoneAwareLocaleContext(LocaleContextHolder.getLocale(), timeZone));
}
}

return true;
}

}

 

 

 

<mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
<bean class="xxx.xxx.xxx.support.spring.i18n.TimeZoneChangeInterceptor"/>
</mvc:interceptors>



























以上是关于spring i18n 设置时区的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 中的 I18n + Thymeleaf

使用 Spring 和 DBCP 和 MySQL 设置连接时区

Spring之i18n配置与使用

带有 i18n 消息的 Spring-MVC + RESTeasy 表单 bean 验证 (JSR 303)

为 i18n 国际化解析 spring:messages in javascript

如何在 Spring boot 2 + Webflux + Thymeleaf 中配置 i18n?