I use Grails 2.0.3 and am comparing a a date string post value using creatCriteria and i have used below methods to convert the string into date but it always empty ? when i try , i can use params.date() method since i pass only one string ,for searching it can be date in one time ,or it can be number and so on ...
println Date.parse('2013-02-05')
my creatCriteria
def vDate = new Date().parse(query.toString())
{
eq('dateCreated',vDate)
}
what am missing or any alternative ? i still believe that this trivial issue has to be resolved enough for future use?
First of all convert your String to date using this method.
def date = Date.parse('yyyy-MM-dd','2013-02-05')
Now use today start and today end method.
Date getTodayStart( Date inDate){
Calendar cal = Calendar.getInstance()
cal.set(inDate[Calendar.YEAR], inDate[Calendar.MONTH], inDate[Calendar.DATE], 0, 0, 0)
Date todayStart = cal.getTime()
return todayStart
}
Date getTodayEnd(Date inDate){
Calendar cal = Calendar.getInstance()
cal.set(inDate[Calendar.YEAR], inDate[Calendar.MONTH], inDate[Calendar.DATE], 0, 0, -1)
Date todayEnd = cal.getTime() + 1
return todayEnd
}
It will give you object from day start to day end.
Date startDate = getTodayStart(date)
Date endDate = getTodayEnd(date)
Now you can create criteria for date.
{
between('dateCreated',startDate.toString(),endDate.toString())
}
It will give you all date for that day.