Как я могу конвертировать дату в граалях? - PullRequest
0 голосов
/ 19 января 2012

Представление списка моего приложения 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 ]

1 голос
/ 19 января 2012

Это может быть связано с тем, что передаваемая дата является строкой.Ваш критерий ищет фактическую дату.

Вы не указываете, какую версию Grails вы используете, но если это Grails 2.0, они добавили методы в параметры, чтобы сделать преобразование проще:

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

Ознакомьтесь с этой статьей от mrhaki для других примеров.

Для более старых версий Grails вам придется конвертировать его самостоятельно, используя Date.parse(params.myDate, "<< format >>") .

0 голосов
/ 11 июня 2013

У меня есть последняя версия Grails, но как насчет других методов преобразования

0 голосов
/ 19 января 2012

С Grails 1.2 доступ к params.myDate автоматически даст вам объект Date.Если вы не используете Grails 1.2 или выше, вам нужно вручную создать объект Date из параметров.

Я думаю, что Date, которую вы получаете от вашего datePicker, имеет слишком большую точность, чтобы что-либо возвращать в вашзапрос.Попробуйте изменить критерии на lt("create_date", params.myDate), чтобы узнать, сможете ли вы вернуть какие-либо значения.Также попробуйте params.myDate.clearTime(), чтобы оставить вас с датой.

...