JSF中convertDateTime的24小时问题

时间:2013-11-29 09:38:36

标签: jsf time converter

我有一个带有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;  
  }  
}

2 个答案:

答案 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>