我有一个DateTimeField
我尝试根据用户的偏好设置两种格式:MM/dd/yy
或dd/MM/yy
。当用户点击DatePicker
并选择日期时,我可以使用正确的格式在DateTextField
中显示日期。但是,当我尝试提交表单时,我会收到"'date' is not a valid Date"
警报,这是DateTimeField
的默认警报。有没有一种方法可以设置,不仅是日期的模式,还有验证模式?我已尝试实施自己的IValidator
和IConverter
,正如其他帖子所提到的那样,但我没有运气。
以下是我如何改变DateTextField
中所选日期的显示方式的代码:
DateTimeField fromDate = new DateTimeField("fromDate") {
private static final long serialVersionUID = 1L;
@Override
protected DatePicker newDatePicker() {
DatePicker datePicker = new DatePicker(){
private static final long serialVersionUID = 1L;
@Override
protected String getDatePattern() {
return ((String) getSession()
.getAttribute("dateFormat")).replace("yyyy", "yy");
}
};
return datePicker;
}
答案 0 :(得分:1)
您应该将dateTextField与自定义转换器一起使用:
new DateTimeField(..) {
protected DateTextField newDateTextField(String id, PropertyModel<Date> dateFieldModel)
{
return new DateTextField(id, model, yourCustomConverter);
}
}