Grails 数据绑定日期格式

Grails databinding date format

我在 grails 2.3 应用程序中遇到数据绑定和正确日期格式方面的问题。

我使用日期选择器 (jQuery ui),它提供 <input type="hidden" /> 以 ISO_8601 格式保存所选日期。它将 post 一个像这样的值: 2015-08-14 到控制器。表格本身和 post 结果是正确的。

我使用这个简化模型:

class Thing {

    DateTime lastUpdated

    static constraints = {
        lastUpdated nullable: true
    }
}


当我尝试创建一个实体时,我会遇到这个错误信息:

Invalid format: "2015-08-14" is malformed at "15-08-14"


第一项研究使我在 Config.groovy:

中发生了这种变化

jodatime.format.html5 = true

(Link 下面列表中的 3 个)

应用它会导致改变。现在错误信息是:

Invalid format: "2015-08-14" is too short (翻转table)


另一种尝试是将 databinding.dateFormats 更改为此(也在 Config.groovy 中):

grails.databinding.dateFormats = [ "yyyy-MM-dd HH:mm:ss.S","yyyy-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;

...

jodatime {   
   format.org.joda.time.DateTime = "yyyy-MM-dd HH:mm:ss" 
   format.org.joda.time.LocalDate = "yyyy-MM-dd" 
}  

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