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。