在 Grails Rest 资源中保存日期

Saving a Date in a Grails Rest resource

我正在测试 Grails Rest Api。

我创建了一个 Grails 应用程序,其中的域 class 声明为资源:

import grails.rest.Resource

@Resource(uri='/books') class 书 {

String title
Date releaseDate

static constraints = {
    title blank:false
    releaseDate blank:false
}

}

我使用 Chrome 应用程序 "Rest Console" 发送了一个 http post 请求来保存一本书,参数如下:

Body Content-type: application/json

原始 Body:

{ "title": "The_book_title", "releaseDate": "2015-01-01" }

{ "title": "The_book_title", "releaseDate": "2015-01-01T07:30:00Z" }

我收到验证错误:字段 releaseDate 不是有效日期。

我的问题是我应该如何在 post 请求中格式化我的日期以通过 Grails 域 class 验证?

我使用 Grails 2.4.4

谢谢

我认为 grails 的默认日期格式是 yyyy-MM-dd HH:mm:ss.SSS ZZZZ

您可以通过将以下内容添加到 Config.groovy 来更改此设置:

grails.databinding.dateFormats = ['yyyy-MM-dd HH:mm:ss.SSS ZZZZ','yyyy-MM-dd', ...]

其中“...”是您期望的任何其他日期格式。一旦您的 JSON 日期格式与配置的格式之一匹配,数据绑定就会发生。