尝试将1天添加到简单日期格式。
import java.text.SimpleDateFormat
Date date = new Date();
def dateformat = new SimpleDateFormat("YYYY-MM-dd")
def currentDate = dateformat.format(date)
log.info "Current Date : " + currentDate
Date date1 = (Date)dateformat.parse(currentDate);
Calendar c1 = Calendar.getInstance();
c1.setTime(date1);
log info c1.add(Calendar.Date,1);
行中出错:
“log info c1.add(Calendar.Date,1);” groovy.lang.MissingPropertyException:没有这样的属性:类的信息:第16行的错误:
注意:当前日期应该是将来的任何日期,我想增加1天。
答案 0 :(得分:1)
嗯,您提供的错误清楚地告诉您,您有语法错误。它说没有财产info
。
这是因为你写了
log info c1.add(Calendar.Date,1);
而不是
log.info c1.add(Calendar.Date,1);
如果您使用了正确的语法,则会抱怨Calendar
没有属性Date
。
所以而不是
c1.add(Calendar.Date, 1)
你的意思
c1.add(Calendar.DAY_OF_MONTH, 1)
但是在Groovy中,您甚至可以使用
更轻松c1 = c1.next()
答案 1 :(得分:1)
您可以使用TimeCategory
添加一天,如下所示:
use(groovy.time.TimeCategory) {
def tomorrow = new Date() + 1.day
log.info tomorrow.format('yyyy-MM-dd')
}
编辑:基于OP评论
这是另一个动态添加方法,即nextDay()
到Date
类。
//Define the date format expected
def dateFormat = 'yyyy-MM-dd'
Date.metaClass.nextDay = {
use(groovy.time.TimeCategory) {
def nDay = delegate + 1.day
nDay.format(dateFormat)
}
}
//For any date
def dateString = '2017-12-14'
def date = Date.parse(dateFormat, dateString)
log.info date.nextDay()
//For current date
def date2 = new Date()
log.info date2.nextDay()
您可以快速在线 demo