如何将字符串转换为日期并在转换回字符串之前执行操作?

时间:2017-03-09 12:14:42

标签: groovy soapui

关于将字符串属性值设置为日期格式,执行日期操作然后将属性值还原为字符串,只是有一个小问题。

计划是我有一个名为testRunner.testCase.setPropertyValue( "LastModifiedDateTo")的属性,其中变量是test 2.目前这个值是20170203,但这可以是任何动态值。

我想要做的是if if语句条件为真:

  • 获取testRunner.testCase.getPropertyValue( "LastModifiedDateTo")的属性值(不要抓住def test1变量,因为我实际上希望在自定义属性中更改属性值)

  • 将字符串值20170203转换为日期格式' 2017-02-03'

  • 将第二天添加到日期中,以便现在“2017-02-04'

  • 将日期转换回字符串格式' 20170204'并设置属性值

下面我在if语句中只有一个硬编码值,就像我对完成值所要求的那样但是我想要替换它来遵循上面的方法。有人可以帮助我完成转换并确定日期。

def test1 = testRunner.testCase.getPropertyValue( "LastModifiedDateTo")
def test2 = testRunner.testCase.getPropertyValue( "LastModifiedTimeFrom")
def test3 = testRunner.testCase.getPropertyValue( "LastModifiedTimeTo")

log.info test1
log.info test2
log.info test3

if (test2 == "23:50:00" && test3 == "00:00:00") {
   testRunner.testCase.setPropertyValue( "LastModifiedDateTo", "20170204")
   log.error "true"
} else {
   log.error "false"
}

1 个答案:

答案 0 :(得分:1)

日期格式一般无关紧要,您要做的是在给定日期添加一天。它可以通过以下方式实现丹麦(使用TimeCategory):

import groovy.time.TimeCategory

def date = Date.parse('yyyyMMdd', '20170203')

use(TimeCategory) {
    date = date + 1.day
}

assert date.format('yyyyMMdd') == '20170204'