【问题标题】:24h problems in convertDateTime in JSFJSF 中 convertDateTime 的 24 小时问题
【发布时间】:2013-12-15 11:03:07
【问题描述】:

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

后豆:

@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;  
  }  
}

【问题讨论】:

    标签: jsf time converter


    【解决方案1】:

    &lt;f:convertDateTime&gt; 在后台使用java.text.SimpleDateFormat API,其 javadoc 可用here,列出所有可用的模式字母。

    几个小时以来,您使用hh 的模式,它在javadoc 中描述为

    小时(上午/下午) (1-12)

    ,而您显然想要javadoc 中描述的如下:

    一天中的小时 (0-23)

    相应地修复它:

    <f:convertDateTime type="time" pattern="HH:mm" timeZone="#{backBean.timeZone}"/>
    

    【讨论】:

    • 啊哈就是这么简单,感谢您的帮助!有一阵子我快要崩溃了。谢谢!
    【解决方案2】:

    您可以使用下面的代码,无需点击 Managedbeans

    <h:outputText value="Time"/>
    
    <h:inputText value="#{backBean.time}" >
    
    <f:convertDateTime pattern="dd-MMM-yy 'at' hh:mm aa" />
    
    </h:inputText>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-30
      • 2018-04-09
      • 2012-09-03
      • 1970-01-01
      • 2012-11-22
      • 2013-10-02
      • 1970-01-01
      相关资源
      最近更新 更多