无方法签名:java.util.Date.minus() 适用于参数类型:(整数)?

kof*_*rts 2 grails java-8 grails-4

我正在将 grails 2.2 升级到 grails 4.0.10。

在使用 java 7 的 grails 2.2 中,这曾经可以工作

def eanalytics = EventAnalytics.createCriteria().get(){
    eq('event', raceGroup)
    lt('dateCreated', timeService.now())
    gt('dateCreated', timeService.now() - 1)
}
Run Code Online (Sandbox Code Playgroud)

现在对于 grails 4 和 java 8 我收到此异常

Caused by: groovy.lang.MissingMethodException: No signature of method: java.util.Date.minus() is applicable for argument types: (Integer) values: [1]
Possible solutions: find(), find(groovy.lang.Closure), is(java.lang.Object), any(), print(java.io.PrintWriter), use([Ljava.lang.Objec
Run Code Online (Sandbox Code Playgroud)

似乎我无法通过减去 java 8 中迄今为止的天数来获得新日期。执行此操作的等效代码是什么?谢谢您的帮助。

timeservice.now 是

def now(){
        def now = new Date()
        return now
    }
Run Code Online (Sandbox Code Playgroud)

Jef*_*own 6

日期扩展方法已移至org.codehaus.groovy:groovy-dateutil. 如果您添加对该库的依赖项,该minus方法应该开始工作。