使用Groovy将日期递增到第二天
尝试将1天添加到简单日期格式。发生在线路使用Groovy将日期递增到第二天
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);
错误:
“日志c1.add信息(Calendar.Date,1);” groovy.lang.MissingPropertyException:没有这样的属性:类信息:Script16行错误:10
注:当前的日期应该是在未来的任何日期,我想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
回答:
那么,你提供的错误清楚地告诉你,你有一个语法错误。它说没有财产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()
以上是 使用Groovy将日期递增到第二天 的全部内容, 来源链接: utcz.com/qa/263568.html