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 对象中。我错过了什么配置?
这里是相关问题,遗憾的是对我没有帮助:
- bind date to command object in Grails
- GORM default Date format when sending date to Grails
- Grails unable to unmarshall date/time from JSON back into joda 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
我在 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 对象中。我错过了什么配置?
这里是相关问题,遗憾的是对我没有帮助:
- bind date to command object in Grails
- GORM default Date format when sending date to Grails
- Grails unable to unmarshall date/time from JSON back into joda 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