Grails数据绑定日期格式

Grails数据绑定日期格式,grails,gorm,jodatime,grails-2.0,Grails,Gorm,Jodatime,Grails 2.0,在Grails2.3应用程序中,当涉及到数据绑定和正确的日期格式时,我遇到了一个问题 我使用一个日期选择器(jqueryui),它提供了一个以ISO_8601格式保存所选日期的。它将向控制器发布如下值:2015-08-14。表单本身和post结果是正确的 我使用这个简化模型: class Thing { DateTime lastUpdated static constraints = { lastUpdated nullable: true } }

在Grails2.3应用程序中,当涉及到数据绑定和正确的日期格式时,我遇到了一个问题

我使用一个日期选择器(jqueryui),它提供了一个以ISO_8601格式保存所选日期的
。它将向控制器发布如下值:
2015-08-14
。表单本身和post结果是正确的

我使用这个简化模型:

class Thing {

    DateTime lastUpdated

    static constraints = {
        lastUpdated nullable: true
    }
}

当我尝试创建实体时,我将面临以下错误消息:
无效格式:“2015-08-14”在“15-08-14”处格式不正确。


第一项研究让我在
Config.groovy
中看到了这种变化:

jodatime.format.html5=true

(下面列表中的链接3)

应用这一点会带来变化。现在,错误消息是:

格式无效:“2015-08-14”太短
(翻转表)


另一种尝试是将databinding.dateFormats更改为以下格式(同样在Config.groovy中):

grails.databinding.dateFormats=[“yyyy-MM-dd HH:MM:ss.S”,“yyy-MM-dd'T'HH:MM:ss'Z',“yyyy-MM-dd”]

这对任何事情都没有影响


根据我的理解,给定的日期格式应该自动封送到dateTime对象中。我错过了什么配置


这里有一个相关的问题,可惜对我没有帮助:


您应该在config.groovy中添加下一行

jodatime { format.org.joda.time.DateTime = "yyyy-MM-dd" }  
但是如果您不需要在这个字段中花费时间,最好使用
LocalDate
而不是
DateTime

class Thing {  
   LocalDate lastUpdated;


因此,您将在需要日期和时间的地方使用
DateTime
,在日期足够的地方使用
LocalDate

@Ilya谢谢您的回复。我对grails还很陌生,不完全理解这有什么帮助。我应该这样写:
jodatime{format.org.joda.time.DateTime=“yyyy-MM-dd”}
?-这似乎是错误的。输入和显示样式之间有联系吗?更新:这确实有效,但将dateTime格式切换为仅日期格式是否是一个好主意?@Ilya您可以将此作为答案发布吗?这似乎解决了问题。我仍然需要理解这一变化的影响。谢谢你抽出时间。这让我发疯;)现在一切似乎都像预期的那样。
jodatime {   
   format.org.joda.time.DateTime = "yyyy-MM-dd HH:mm:ss" 
   format.org.joda.time.LocalDate = "yyyy-MM-dd" 
}