使用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

回到顶部