我有一个groovy grails项目的以下域名
class Title {
// Automatic timestamping
DateTime dateCreated
DateTime lastUpdated
String name
LocalDate startDate
LocalDate endDate
static constraints = {
name blank: false, maxSize: 100
startDate nullable: true
endDate nullable: true
// TODO: Validation check to make sure endDate is after startDate
}
}
开始日期使用jodatime的LocalDate
。
我的问题是,当我去更新startDate
字段时,我必须使用以下格式mm/dd/yyyy
,但它将日期作为yyyy-mm-dd
存储在数据库中。我想创建我的输入字段,对于开始日期,接受yyyy-mm-dd
,因为这是它存储在数据库中的方式。如果我尝试使用除斜杠之外的任何其他格式提交表单,则会出现以下错误
无法将类型为java.lang.String的属性值转换为属性startDate所需的类型org.joda.time.LocalDate;嵌套异常是java.lang.IllegalArgumentException:格式无效:“2014-01-01”格式错误为“14-01-01”
有谁知道如何解决这个问题?我应该重新格式化字符串吗?
答案 0 :(得分:1)
您使用的是 Joda Time 插件吗?如果是,您应该将您的字段映射到
static mapping = {
startDate type: PersistentLocalDate
endDate type: PersistentLocalDate
}
在你的模特中。