更新答:
您可以使用
<p:calendar id="begin" value="#{addIncidentView.begin}" pattern="HH:mm" timeOnly="true" converter="#{addDateConverter} />
和麪孔轉換
import java.util.Date;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.inject.Named;
@Named
public class AddDateConverter implements Converter {
@Override
public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {
String[] split = arg2.split(":");
Date date = new Date();
date.setHours(Integer.parseInt(split[0]));
date.setMinutes(Integer.parseInt(split[1]));
return date;
}
@Override
public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {
if (arg2 instanceof Date) {
Date date = (Date) arg2;
return date.getHours() + ":" + date.getMinutes();
}
return null;
}
}
轉換器IST只有概念證明的。使用更好的LocalDateTime和a DateTimeFormatter。但我認爲已初始化的日期信息已丟失。解決方法是將其保存在輔助bean的第二個屬性中。
它具有相同的效果。日期信息將會丟失 – matthias
你說得對。我已經延長了答案。 – jklee
您不應該再使用date.setHours()和setMinutes()。改爲使用SimpleDateFormatter和日曆。 – lastresort