bean属性上的日期格式错误

时间:2013-02-07 23:23:39

标签: java jsf primefaces

我想从p:calendar(2013-02-14)获取日期并将其传递给bean属性。这是有效的,但日期格式与我通过的格式不同。

代码:

<h:outputLabel value="Start date:"></h:outputLabel>
<p:calendar pattern="yyyy-MM-dd" showButtonPanel="true" navigator="true"  id="startDate" value="#{dodajanjeProjekta.start}" >
    <f:convertDateTime pattern="yyyy-MM-dd"/>
</p:calendar> 

价值必须是2013-02-14,但是是2月14日星期四01:00:00 CET 2013

On debugging

1 个答案:

答案 0 :(得分:4)

Date对象基于时期以毫秒为单位存储日期long。那是你可以看到的fastTime

当它显示为2013-02-14Thu Feb 14 01:00:00 CET 2013两者具有相同的值时,它们只是以不同的方式格式化,您必须考虑时区。

<f:convertDateTime pattern="yyyy-MM-dd"/> 

告诉jsf显示日期时使用特定的格式化程序,它仍会以相同的方式存储它。另一方面,调试器只会在显示对象时使用默认格式。

尝试使用

new SimpleDateFormatter("yyyy-MM-dd").format(this.start)

在您的表达式窗口中,您应该看到要查看的日期。