我有一个带有convertDateTime的输入文本字段,以查看时间是否正确。问题是convertDateTime设置为12小时计数,但我想要24小时计数,有人知道如何解决这个问题?
例如,如果我输入14:12,我收到错误消息:“14:12”无法作为日期。 但是02:12很好。
以下是代码:
<h:outputText value="Time"/>
<h:inputText value="#{backBean.time}" >
<f:convertDateTime type="time" pattern="hh:mm" timeZone="#{backBean.timeZone}"/>
</h:inputText>
Backbean:
@ManagedBean(name = "backBean")
@SessionScoped
public class BackBean {
private Date date = new Date();
public void setTime(Date inDate)
{
date.setMinutes(inDate.getMinutes());
date.setHours(inDate.getHours());
}
public Date getTime()
{
return date;
}
public TimeZone getTimeZone() {
TimeZone timeZone = TimeZone.getDefault();
return timeZone;
}
}
答案 0 :(得分:10)
<f:convertDateTime>
使用java.text.SimpleDateFormat
API,其javadoc可用here,列出所有可用的模式字母。
几个小时,您使用的hh
模式位于javadoc中,描述为
h Hour in am/pm (1-12)
,虽然你明确想要在javadoc中描述如下:
H Hour in day (0-23)
相应修复:
<f:convertDateTime type="time" pattern="HH:mm" timeZone="#{backBean.timeZone}"/>
答案 1 :(得分:-1)
您可以使用以下代码,无需点击Managedbeans
<h:outputText value="Time"/>
<h:inputText value="#{backBean.time}" >
<f:convertDateTime pattern="dd-MMM-yy 'at' hh:mm aa" />
</h:inputText>