在 JSF 中格式化日期输出

Posted

技术标签:

【中文标题】在 JSF 中格式化日期输出【英文标题】:Format Date output in JSF 【发布时间】:2011-06-11 17:28:00 【问题描述】:

如果#myBean.birthdatejava.util.Calendarjava.util.Date 类型,我是否可以使用现有函数在EL 本身内部对其进行格式化,输出类似于DateFormat 的@987654325 产生的输出@, MEDIUM,LONG abd FULL 输出类型?

我不想输出 #myBean.birthdate 的完整表单:Wed Jan 19 19:01:42 WIT 2011,我只喜欢 Jan 19, 2011 的简单输出>.

我应该改用#formatBean.format(myBean.birthdate) 吗?

【问题讨论】:

【参考方案1】:

使用<f:convertDateTime>。您可以将其嵌套在任何输入和输出组件中。模式规则同java.text.SimpleDateFormat

<h:outputText value="#someBean.dateField" >
    <f:convertDateTime pattern="dd.MM.yyyy HH:mm" />
</h:outputText>

【讨论】:

life.java - Jigar Joshi 哇,这对我来说是新事物,非常好!谢谢 !但是下面这个案例呢?我使用primefaces,日期值将嵌入属性值中。例如,. @bertie:在下面查看我的答案并使用 OmniFaces。 如何检查年份或月份?【参考方案2】:

如果你使用OmniFaces,你也可以使用它的EL函数比如of:formatDate()来格式化Date对象。你可以这样使用它:

<h:outputText value="#of:formatDate(someBean.dateField, 'dd.MM.yyyy HH:mm')" />

这样您不仅可以将其用于输出,还可以将其传递给其他 JSF 组件。

【讨论】:

使用 OmniFaces 方法,它比 f:convertDateTime 更直观。【参考方案3】:

使用 EL 2(表达式语言 2),您可以为您的问题使用这种类型的构造:

    #formatBean.format(myBean.birthdate)

或者你可以在你的 bean 中添加一个替代的 getter,结果是

    #myBean.birthdateString

其中 getBirthdateString 返回正确的文本表示。如果是实体,记得把get方法注解为@Transient。

【讨论】:

以上是关于在 JSF 中格式化日期输出的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQL Server中 将日期格式化

在sql server中格式化日期输出[重复]

在ssm框架中怎么输出日期时间格式

[java工具类01]__构建格式化输出日期和时间的工具类

L1-042 日期格式化

如何在 Dart 中格式化日期? [复制]