【问题标题】:How can i convert date in grails?如何在 grails 中转换日期?
【发布时间】:2012-01-18 20:44:00
【问题描述】:

我的 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 也有日期值。

谁能给点意见?

【问题讨论】:

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


    【解决方案1】:

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

    您没有指定您使用的是什么版本的 Grails,但如果是 Grails 2.0,他们会在参数中添加方法以使转换更容易:

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

    Check out this article by mrhaki 更多示例。

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

    【讨论】:

      【解决方案2】:

      由于 Grails 1.2 访问 params.myDate 将自动为您获取一个 Date 对象。如果您未使用 Grails 1.2 或更高版本,则需要从参数手动创建 Date 对象。

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

      【讨论】:

      • 如果你创建一个新的 Date() 并在条件中使用它会怎样?
      • 不明白。我是 grails 的新手。用语法解释我。
      • lt('create_date', new Date())
      • 如果我创建新日期,那么它如何从 datepicker 传递 params.myDate?
      • 我只是想让你尝试在条件中使用new Date() 看看你是否能得到结果。
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-13
        • 1970-01-01
        • 2013-01-20
        • 1970-01-01
        • 1970-01-01
        • 2019-06-25
        • 2011-12-12
        • 1970-01-01
        相关资源
        最近更新 更多