2013-08-02 62 views
0

我想在我的DateBox中验证日期。我是这样做的:GWT中的日期验证

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'。

请帮忙。

回答

1
DateTimeFormat.parseStrict() 

需要一个字符串和

addContDateCreateDateBox.getValue().toString() 

回报 '周五8月2日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()方法来执行格式尊重格式返回日期。

+0

它有帮助。非常感谢你。 – zigfridus