使用groovy将soapui属性值转换为miliseconds

时间:2017-04-16 18:07:38

标签: datetime groovy soapui

我正在尝试将soapui属性值(例如:2017/04/17 02:00:00)转换为毫秒。我必须将明天自定义日期时间(以毫秒为单位)存储到soapui属性中。截至目前,我可以将自定义时间的日期存储到属性中。现在需要将其转换为毫秒。

def date = new Date(); 
def nextDate = date + 1
tomorrow = nextDate.format("yyyy/MM/dd");
log.info tomorrow
def setTomorrow = testCase.testSuite.project.setPropertyValue("Date", tomorrow + ' 02:00:00' );

long millisecond = setTomorrow.getTime();
log.info millisecond

错误:

  

无法在null对象

上调用方法getTime()

请帮助。

1 个答案:

答案 0 :(得分:1)

如果你想明天在millis的时间:

def date = new Date() + 1
log.info "Tomorrow's time in millis : ${date.time}"
//Set it into project property
context.testCase.testSuite.project.setPropertyValue('DATE_TIME', date.time.toString())

希望您知道如何使用属性扩展访问上述DATE_TIME项目属性,即${#Project#DATE_TIME}

如果您想要特定的日期字符串为millis,请使用以下内容:

def date2 = Date.parse('2017/04/17 02:00:00')
log.info date2

编辑:根据OP的评论,更新下面的脚本 -

//Tomorrow date
def d = (new Date() +1).format('yyyy/MM/dd')
use(groovy.time.TimeCategory) {
    //Add fixed hours i.e., 2
    def tomorrow2hours = new Date(d) + 2.hours
    log.info "Tomorrow @ 2 hrs : ${tomorrow2hours}"
    log.info "In millis : ${tomorrow2hours.time}"
    context.testCase.testSuite.project.setPropertyValue('DATE_TIME', tomorrow2hours.time.toString())
}

EDIT2:基于OP评论错误的毫秒,从下面的代码是错误的 - 尝试在声明context...之后添加两个以下并查看。

def dd = new Date(tomorrow2hours.time)
log.info dd.format('yyyy-MM-dd HH:mm:ss')