MM/dd/yyyy 格式 p:calendar

MM/dd/yyyy format in p:calendar

参考this问题, 它仍然接受 8/1/201987 作为日期,其中 201987 不是 yyyy 格式。

如何保证yyyy格式?我需要在 bean 中验证它吗?

我使用了下面的代码:

<p:calendar ...>
    <f:convertDateTime pattern="dd/MM/yyyy" />
</p:calendar>

但是因为它使用 SimpleDateFormat,如果你给 yyyy 它接受任意数量的数字。

如何解决这个问题?

您可以通过添加属性 mask="true"maxlength=10

来限制用户输入

试试 p:calender 的掩码,比如 mask="99/99/9999",对我来说效果很好

<p:calendar value="8/1/201989" mask="99/99/9999">
    <f:convertDateTime pattern="dd/MM/yyyy" />
</p:calendar>