java - Date.plus 在 2.5.4 Groovy Runtime 中不起作用,有什么替代方法?
问题描述
我们希望在当前日期中添加天数并以特定方式对其进行格式化。这已在 Groovy 2.4.13 中解决,并且以下日期操作可以正常工作:
today = new Date()+90;today.format('yyyy-MM-dd HH:mm:ss.S');
结果:2019-12-02 08:07:15.294
在 Groovy 2.5.4 中,相同的表达式会引发此异常:
groovy.lang.MissingMethodException:没有方法签名:java.util.Date.plus() 适用于参数类型:(整数)值:[90] 可能的解决方案:parse(java.lang.String)、split(groovy. lang.Closure), use([Ljava.lang.Object;), is(java.lang.Object), wait(), clone() at Script1.run(Script1.groovy:3)
我能够在线在“Groovy 沙盒”中重现此行为:
在这里工作正常:groovy-playground(2.4.1.5 版)在这里失败:groovyconsole(2.5.7 版)
在这种情况下,可行的替代方案是什么?我已经阅读了一个新的 Date API,但找不到有关如何使用它的详细信息,以及日期操作(例如 + 90 天)。
解决方案
看看时间类别
import groovy.time.TimeCategory
def theDate = use(TimeCategory){new Date() + 90.days}.format('yyyy-MM-dd HH:mm:ss.S')
推荐阅读
- c++ - 通过给定的 id 从列表中取回对象
- python - pytorch中的人脸对齐
- django - 出现“无属性”错误时如何添加到 ManyToMany?
- java - 超过时间限制 Leetcode
- django - 如何将模型用户中的对象过滤到列表中
- mapkit - Xcode 11,iOS 13.2 - “libMobileGestalt MobileGestalt. c:1647: 无法检索区域信息”地图错误
- r - ~/.R/Makevars/ 是什么/在哪里。文件?
- python - 为什么 pytesseract 不能正确识别?
- applescript - 尝试循环列表,以便打印出每个偶数
- maven - 如何将特定版本的 jar 包含到 Uber jar 中?