试图弄清楚Spring的时区处理是如何运作的。时区转换似乎适用于<fmt:formatDate>
代码,但无法用于Spring自己的<form:input>
代码。我有一个简单的测试JSP:
Plain: ${dateTest.date}
Fmt: <fmt:formatDate value="${dateTest.date}" type="both" dateStyle="long" timeStyle="long"/>
<form:form action="..." commandName="dateTest">
Form: <form:input path="date"/>
<button type="submit">Test</button>
</form>
在控制器端 - 非常简单的控制器,它只响应提交时收到的值。在配置中 - localeResolver设置为测试解析器,它始终以Europe/Moscow
(MSK)作为时区返回(本地时区为PST)
首次显示JSP页面时输出如下:
Plain: Fri Nov 07 20:43:51 PST 2014
Fmt: November 8, 2014 8:43:51 MSK AM
Form: [07/11/2014]
时区转换似乎适用于<fmt>
输出 - 时区为MSK,但表单字段中的日期设置为&#34; 7/11&#34;,这是一个本地时区日期(太平洋标准时间)。
在控制器端,RequestContext.getTimezone()返回正确的(MSK)时区。
标签似乎没有转换,但Spring文档(16.9.1)声明1&#34;日期/时间转换器和注册的Formatter对象将自动使用时区信息Spring的ConversionService。&#34;
有没有人遇到过/解决过这个问题?您通常如何处理<form:input>
代码的时区转换?