我的xhtml 上有这段代码
<h:inputHidden id="startDate" value="#{testController.selected.startDate}">
<f:convertDateTime pattern="yyyy-MM-dd HH:mm" />
</h:inputHidden>
如果我输入2013-02-26 17:15
,则插入数据库的数据的结果为2013-02-27 01:15
或者如果2013-02-26 05:15
结果是2013-02-26 13:15
我已经在输入中输入了一个24小时的日期时间,但我真的很困惑为什么它会转换成其他内容。
*编辑
我的目标是…无论用户在输入中输入的时间是多少,都会在数据库中反映出来。我使用日期选择器作为输入,所以假设时间/日期输入已经正确,并且是24小时格式的
我猜JSF日期/时间转换器根据规范默认为UTC时区。
所以我在我的web.xml上添加了这个,它就起作用了。
<context-param>
<param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
<param-value>true</param-value>
</context-param>
参考:为f:convertDateTime 设置默认时区