У меня есть составной первичный ключ с датой.Groovy/Grails/Gorm датируется мгновенными сообщениями.
id composite: ["division", "expenseDate"]
String division
Date expenseDate
def getPK() {
["division":division, "expenseDate":expenseDate]
}
Я генерирую ссылки на страницы так.
<g:link controller="recoveryDetail" action="edit" params="${it.getPK()}">
<g:formatDate format="MM/dd/yyyy" date="${it.expenseDate}" />
</g:link>
Я в конечном итоге с генерируемой URL, как так
http://localhost:8080/pisr/recoveryDetail/edit?division=BUFFALO&expenseDate=2007-04-25+00%3A00%3A00.0
Я хотел бы, чтобы устранить время от появления в URL.
Мне также сложно сравнивать объекты с тем фактом, что даты, поступающие из базы данных, имеют нулевое время, но у моих локальных объектов есть локальное время. Пример «деление»: «BUFFALO», «costDate»: «2015-07-07T04: 00: 00Z». Как вернуть нулевое время, а не мое местное время.
Наконец, я использую компонент grails datePicker, и когда я получаю дату с параметрами, я получаю expenseDate_day:7, expenseDate_year:2015, expenseDate_month:7
. Как преобразовать их обратно в объект даты в groovy, чтобы я мог выполнить следующий запрос к дате?
RecoveryDetail.createCriteria().get {
eq("division", recoverySetupInstance.division)
eq("expenseDate", expenseDate)
}
Ваш первый вопрос касается формата даты, который вы могли бы использовать formatDate или simpleDateFormat для форматирования даты в dd-mm-yyyy или что вы хотели. http://grails.github.io/grails-doc/latest/ref/Tags/formatDate.html. То для gsps. В контроллере вы можете сделать g.formatDate (формат: «yyyy-MM-dd» date: «$ {date}»). Второй вопрос вроде того - просто используйте объекты, чтобы сделать дату назад на другой стороне. – Vahid
@vahid для чего использовать тег formatDate в контроллере? у вас есть красивый метод в объекте Date: format (String format). Итак, вместо g.formatDate (формат: «yyyy-MM-dd» date: «$ {date}») вы можете просто написать: date.format («yyyy-MM-dd») – Koloritnij