Java SimpleDataFormat引发不可分析的异常

Java SimpleDataFormat引发不可分析的异常,java,simpledateformat,jsf-2.2,Java,Simpledateformat,Jsf 2.2,对于高级搜索方法,我使用SimpleDateFormat将字符串从h:inputText字段格式化为Date类型 我试过了 if(dateFrom != null && !dateFrom.isEmpty()){ predicates.add(cb.equal(tt.get(Bean_.dateFrom), cb.parameter(Date.class, "dateFrom")));

对于高级搜索方法,我使用
SimpleDateFormat
将字符串从
h:inputText
字段格式化为
Date
类型

我试过了

if(dateFrom != null && !dateFrom.isEmpty()){
                predicates.add(cb.equal(tt.get(Bean_.dateFrom),
                        cb.parameter(Date.class, "dateFrom")));
            }

SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");                     
        if(dateFrom != null && !dateFrom.isEmpty()){               
            query.setParameter("dateFrom", formatter.parse(dateFrom));            
        }

SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");  
    Date d = formatter.parse(dateFrom);
    formatter.applyPattern("dd-MM-yyyy");        
    if(dateFrom != null && !dateFrom.isEmpty()){               
        query.setParameter("dateFrom", formatter.format(d));            
    }
以及其他模式,如“yyyy/MM/dd”、“MM/dd/yyyy”和“MM-dd-yyyy”

对于输入字段,我使用p:calendar,我也使用相同的模式在那里输入日期。 我得到以下异常:当我在输入文本中输入24-02-2014时

java.text.ParseException: Unparseable date: "Mon Feb 24 03:00:00 AST 2014"
我查看了所有关于此异常的问题,并简化了格式错误,但没有一个像我这样。太奇怪了

更新
p:日历:

<p:calendar value="#{beanController.dateFrom}" id="dateFrom" styleClass="dateTimeField" pattern="dd-MM-yyyy">

                                    <p:watermark value="From DD-MM-YYYY" for="dateFrom"/>
                                    <f:param name="dateFrom" value="#{beanController.dateFrom}"/>                                    
                                </p:calendar>


如消息所示,您正在解析的字符串不是
24-02-2014
,而是
2014年2月24日星期一03:00:00 AST
。难怪日期格式不能解析它,因为它的模式是dd-MM-yyy。问题出在别处。这可能会有所帮助:@JBNizet感谢您的洞察力。我查看了@helderdarocha提供的链接并删除了
f:convertDateTime
,但它仍然不起作用?可能有什么问题。我更新了我的问题,加入了
p:calendar
部分。如果你想“从h:inputText格式化字符串”,你也应该包括h:inputText的xhtml。另外,在回答中还有一个更清晰的例子,问题是primefaces向bean发送了错误的格式。我将一个字符串绑定到它,我还尝试了java.util.Date类型,但它也不起作用。我最终无法让primefaces calendar将正确的格式发送到bean,于是决定放弃它,改用jQueryDatePicker。