0

我想在我的 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”​​。

请帮忙。

4

1 回答 1

1
DateTimeFormat.parseStrict()

需要一个字符串和

addContDateCreateDateBox.getValue().toString() 

返回“Fri Aug 02 00:00:00 EEST 2013”​​,根据您在

private DateTimeFormat ft_big = DateTimeFormat.getFormat("dd.MM.yyyy");

而是使用

ft_big.format(addContDateCreateDateBox.getValue()); 

格式化返回的日期

addContDateCreateDateBox.getValue() 

正确格式化日期后,您可以使用 parseStrict() 方法强制遵守格式。

于 2013-08-02T10:21:29.997 回答