【发布时间】:2011-04-13 17:09:14
【问题描述】:
我们有一个带有java.util.Calendar 对象的对象。我们希望在 JSF 页面上显示数据(最好采用与 java.util.Date 对象相同的格式)。似乎应该有一些干净的方法来做到这一点,而不是创建一个包装类来将日历转换为日期。
在 JSF 页面中显示 java.util.Calendar 中的日期/时间的最简洁方式是什么?
【问题讨论】:
我们有一个带有java.util.Calendar 对象的对象。我们希望在 JSF 页面上显示数据(最好采用与 java.util.Date 对象相同的格式)。似乎应该有一些干净的方法来做到这一点,而不是创建一个包装类来将日历转换为日期。
在 JSF 页面中显示 java.util.Calendar 中的日期/时间的最简洁方式是什么?
【问题讨论】:
使用Calendar 自己的getter Calendar#getTime()。它返回一个Date。然后你可以像往常一样使用<f:convertDateTime>。
<h:outputText value="#{bean.calendar.time}">
<f:convertDateTime type="both" dateStyle="long" />
</h:outputText>
【讨论】:
<f:convertDateTime> 将其转换为 Calendar 对象?
(getAsString) 并从 JSF 转换为支持 bean (getAsObject)。这里有一个小教程。 mkyong.com/jsf2/custom-converter-in-jsf-2-0
对于其他人和@seangates:如果使用日历对象,您可以应用模式。例如
<h:outputText value="#{bean.calendar.time}" styleClass="date">
<f:convertDateTime pattern="EEEE, MMMM d yyyy" />
</h:outputText>
<h:outputText value="#{bean.calendar.time}" styleClass="time">
<f:convertDateTime pattern="hh:mm" />
</h:outputText>
【讨论】:
如果您需要更多文本:
<h:outputFormat
value="#This my date: {0,date,long}">
<f:param value="#{bean.calendar.time}" />
</h:outputFormat>
见:https://docs.oracle.com/javase/7/docs/api/java/text/MessageFormat.html
【讨论】: