我想在DateBox中验证日期。我是这样做的:
private DateBox addContDateCreateDateBox = new DateBox();
private DateTimeFormat ft_big = DateTimeFormat.getFormat("dd.MM.yyyy");
addContDateCreateDateBox.setFormat(new DateBox.DefaultFormat(ft_big));
addContDateCreateDateBox.setValue(new Date());
Boolean fl = true;
if (addContDateCreateDateBox.getValue() != null) {
try {
ft_big.parseStrict(addContDateCreateDateBox.getValue().toString());
} catch (IllegalArgumentException ex) {
fl = false;
}
} else fl = false;
但即使我在DateBox中输入正确的日期,我也会收到fl == false。我不知道为什么但是这个addContDateCreateDateBox.getValue()。toString()对'02 .08.2013'的回复 'Fri Aug 02 00:00:00 EEST 2013'。
请帮助。
答案 0 :(得分:1)
DateTimeFormat.parseStrict()
需要一个String和
addContDateCreateDateBox.getValue().toString()
返回'Fri Aug 02 00:00:00 EEST 2013',根据您指定的格式(“dd.MM.yyyy”)无法解析
private DateTimeFormat ft_big = DateTimeFormat.getFormat("dd.MM.yyyy");
改为使用
ft_big.format(addContDateCreateDateBox.getValue());
格式化
返回的日期addContDateCreateDateBox.getValue()
日期格式正确后,您可以使用parseStrict()方法强制执行格式。