gpt4 book ai didi

grails - 按年份筛选Grails列表

转载 作者:行者123 更新时间:2023-12-02 14:24:29 26 4
gpt4 key购买 nike

我正在尝试按日期格式字段过滤列表。

class Timesheet {

String orderNumber
String groupCode
String periodCode
BigDecimal totalHours
Date importTime
Date generationTime // here
String description

和 Controller :
def list = {
flash.periodCode = params.periodCode
flash.groupCode = params.groupCode
flash.orderNumber = params.orderNumber

// here
flash.generationTime = Date.parse('yyyy-mm-dd hh-mm-ss', params.generationTime)

if(!params.max) {
params.max = 20
}
def query
def criteria = Timesheet.createCriteria()
def results

query = {
and{
like("periodCode", '%' + params.periodCode + '%')
like("groupCode", '%' + params.groupCode + '%')
like("orderNumber", '%' + params.orderNumber + '%')
like("generationTime", '%' + params.generationTime + '%')
}
}

results = criteria.list(params, query)

render(view:'index', model:[ timesheetInstanceList: results ])
}

日期看起来像: 2014-01-02 08:46:14 CET

我正在尝试做的事情是在“2014”之类的文本字段中输入文本,grails Controller 应找到包含“2014”在内的所有日期记录。有没有简单的方法可以做到这一点?我收到的异常是:
Unparseable date: "2013-12-31 08:02:55"
or
"java.lang.String cannot be cast to java.util.Date filtering grails"

最佳答案

因此,最简单的方法是获取在该年1月1日至同年12月31日之间创建的所有时间表。

首先,您获得两个日期为01/01 / $ year的实例,第二个实例为31/12 / $ year

Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.WEEK_OF_YEAR, 1);
cal.set(Calendar.DAY_OF_WEEK, 1);

Date start = cal.getTime();

//set date to last day of $year
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, 11); // 11 = december
cal.set(Calendar.DAY_OF_MONTH, 31); // new years eve

Date end = cal.getTime();

然后,您要做的就是查询开始和结束之间的日期
query = {
and{
like("periodCode", '%' + params.periodCode + '%')
like("groupCode", '%' + params.groupCode + '%')
like("orderNumber", '%' + params.orderNumber + '%')
like("generationTime", '%' + params.generationTime + '%')
between('generationTime', start, end)
}
}

您应该在这里注意的一件事是将小时,分钟和秒更改为23:59:59

关于grails - 按年份筛选Grails列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21524700/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com