【问题标题】:Primefaces calendar : Not able to format the datePrimefaces日历:无法格式化日期
【发布时间】:2017-02-21 09:25:43
【问题描述】:

更新:我使用 primefaces 日历来显示日期。它的默认格式是 mm/dd/yy,但对于德语等其他语言环境,它是 dd.mm.yy。如果我指定英语的格式,例如 dd/MM/yyyy,那么它会显示正确的英语格式,但是在将语言更改为德语时,它会再次显示 dd/MM/yyyy 而不是 dd.MM.yyyy

我已经试过了:

<p:calendar id="createdDateToDK"
    value="#{messagesDefaultKeys.createdDateTo}" showOn="button"
                mode="popup" navigator="true" pattern="dd/MM/yyyy>
                <f:converter converterId="messages.convertors.DateConvertor" />
</p:calendar>

我也尝试过以下方法:

<p:calendar id="createdDateToDK"
            value="#{messagesDefaultKeys.createdDateTo}" showOn="button"
            mode="popup" navigator="true">
            <f:convertDateTime for="createdDateToDK" pattern="dd/MM/yyyy"></f:convertDateTime>
</p:calendar>

我正在使用 primefaces3.5 jar 和 JSF2.0。

我不想只为另一种语言添加另一个日历组件。请注意,只有当我指定日历的格式时才会发生这种情况,而它适用于不同的语言环境。

【问题讨论】:

  • 第一个例子有一个错误:on pattern="MM/dd/yyyy缺少结束引号。我通常使用第一个例子。
  • createDateTo 是什么类型?我看到你使用转换器
  • 啊.... 可能缺少引号 :( 但现在还有另一个问题相同的格式适用于所有语言环境,例如对于德语,它与英语 dd/MM/yyyy 相同,而应该是dd.mm.yyyy createDateTo 是 java.util.Date 格式
  • 尝试将格式作为 EL 表达式从 bean 字段发送
  • 使用字符串模式1 = ((SimpleDateFormat) DateFormat.getDateInstance(DateFormat.SHORT, locale)).toPattern();您将获得指定区域设置的默认日期格式

标签: primefaces jsf-2


【解决方案1】:

日期不用转换器,calendar自带一个叫pattern的属性,你可以用它来改变日期的模式,比如&lt;p:calendar pattern="dd.MM.yyyy HH:mm" /&gt;会显示21.02.2017 15:42,你可以改变模式用点、slach 或任何字符来分隔日期

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-04
  • 1970-01-01
  • 1970-01-01
  • 2017-12-24
  • 2017-04-10
相关资源
最近更新 更多