2013-08-02 64 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