Omn*_*ent 8 grails groovy datetime
如何将Grails中的datetime字段转换为日期,而不是捕获时间?我需要这样做以与系统日期进行比较.
class Trip
{
String name
String city
Date startDate
Date endDate
String purpose
String notes
static constraints = {
name(maxLength: 50, blank: false)
startDate(validator: {return (it >= new Date())}) // This won't work as it compares the time as well
city(maxLength: 30, blank: false)
}
}
Run Code Online (Sandbox Code Playgroud)
[遗憾的是]没有用于执行此操作的"开箱即用"方法Grails|Groovy|Java.
每当提出问题或提出问题时,总会有人抛出Joda-Time,但包括另一个库并不总是一个选择.java.util.Datejava.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()
}
//...
}
Run Code Online (Sandbox Code Playgroud)
然后,在验证器中,您可以使用
startDate(validator: {return (it.after(DateTimeUtil.today))}) //Groovy-ism - today implicitly invokes `getToday()`
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13446 次 |
| 最近记录: |