grails正在重新格式化我的约会

时间:2013-12-18 21:44:11

标签: grails jodatime

我有一个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”

有谁知道如何解决这个问题?我应该重新格式化字符串吗?

1 个答案:

答案 0 :(得分:1)

您使用的是 Joda Time 插件吗?如果是,您应该将您的字段映射到

static mapping = {
    startDate type: PersistentLocalDate
    endDate type: PersistentLocalDate
}

在你的模特中。