2014-02-07 58 views
0

我有一个使用自定义日期和时间选择器脚本的文本输入。Grails输入错误:属性必须是有效日期

<div class="input-group date datetime" data-start-view="4" data-date-format="dd MM yyyy" data-min-view="2" data-link-field="dtp_input1"> 
    <input name="dateOfBirth" class="form-control" size="16" type="text" value="${userInstance?.dateOfBirth}"/> 
    <span class="input-group-addon btn btn-primary"><span class="glyphicon glyphicon-th"></span></span> 
</div> 

它给了我这个错误 Property org.springframework.context.support.DefaultMessageSourceResolvable: codes [rms.User.dateOfBirth,dateOfBirth]; arguments []; default message [dateOfBirth] must be a valid Date

我不如何​​解决这个问题。使用grails dateTime选取器标记似乎可行,但其丑陋

+0

你在行动的参数是什么? – user1791574

回答

0

唯一的方法是使用SimpleDateFormat。我经常用它来与JS-日历里面形式:

class YourController { 

    static SimpleDateFormat sdf = new SimpleDateFormat('dd.MM.yyyy') 

    def index(){ 
    Date dateOfBirth 
    try{ 
     if(params.dateOfBirth) dateOfBirth = sdf.parse(params.dateOfBirth) 
    }catch(Exception ignoreMe){} 
    // do something useful 
    } 

UPDATE:

必须使用过程中的propper日期格式。我在示例dd.MM.yyyy中给出的那个对应于08.02.2014。对于像February 08 2014这样的字符串,你需要类似MMM dd yyyy

查看http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html了解更多信息

+0

我试过了,但它给出了一个不可解析的错误。我的字符串就像这个顺便说一句。一月dd yyyy。它给出了12个月的完整单词 – Jan

+0

更新了我的答案 – injecteer

相关问题