我使用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"
我查看了有关此异常和SimpleDateFormat错误的所有SO队列,但它们都不像我的。太奇怪了。
更新
号码:日历:
<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>