我如何在grails中转换日期?

时间:2012-01-18 20:44:00

标签: grails grails-plugin grails-domain-class grails-controller

My Grail应用程序'列表视图具有以下数据库日期格式:   2012-01-18 14:29:19 EST

我正在使用

<g:datePicker name="myDate" value="${new Date().format("dd MM,yyyy")}"/>

并在控制器中:

def c  = abc.createCriteria()
    def x =  c.list{
            eq("name",params.wfName)
            eq("create_date",params.myDate)
    }

但是列表x里面没有任何内容并且什么也没有返回。虽然我只搜索但是wfName它完美无缺。 params.myDate也有日期值。

任何人都可以请一点意见吗?

3 个答案:

答案 0 :(得分:1)

这可能是因为传入的“日期”是一个字符串。您的标准是寻找实际日期。

您没有指定正在使用的Grails版本,但如果它是Grails 2.0,则他们为params添加了方法以使转换更容易:

eq('create_date', params.date('myDate', 'dd MM,yyy'))

Check out this article by mrhaki更多例子。

对于旧版本的Grails,您必须使用Date.parse(params.myDate, "<< format >>")自行转换。

答案 1 :(得分:0)

由于Grails 1.2访问params.myDate会自动为您提供Date对象。如果您没有使用Grails 1.2或更高版本,则需要从参数中手动创建Date对象。

我认为从datePicker获取的日期太精确,无法在查询中返回任何内容。尝试将条件更改为lt("create_date", params.myDate),看看是否可以获得任何返回的值。也可以尝试params.myDate.clearTime()给你留下日期。

答案 2 :(得分:0)

我有最新版本的grails但是其他转换方法呢