[к сожалению] не существует готового метода для выполнения этой операции в Grails|Groovy|Java
.
Кто-то всегда добавляет Joda-Time каждый раз, когда возникает вопрос java.util.Date
или java.util.Calendar
, но включение еще одной библиотеки не всегда является возможным.
Совсем недавно для аналогичной проблемы мы создали класс DateTimeUtil
с static
методами и что-то вроде следующего, чтобы получить только Date
:
class DateTimeUtil {
// ...
public static Date getToday() {
return setMidnight(new Date())
}
public static Date getTomorrow() {
return (getToday() + 1) as Date
}
public static Date setMidnight(Date theDate) {
Calendar cal = Calendar.getInstance()
cal.setTime(theDate)
cal.set(Calendar.HOUR_OF_DAY, 0)
cal.set(Calendar.MINUTE, 0)
cal.set(Calendar.SECOND, 0)
cal.set(Calendar.MILLISECOND, 0)
cal.getTime()
}
//...
}
Затем в валидаторе вы можете использовать
startDate(validator: {return (it.after(DateTimeUtil.today))}) //Groovy-ism - today implicitly invokes `getToday()`