2017-07-19 69 views
2

我想在SoapUI中添加一個groovy腳本,在當前日期使用next()來查找明天的日期。 我正在如預期的其它日期的日期,除非該日期是19groovy next()date issue

def TodaysDate = new java.util.Date().format("yyyy-MM-dd") 
log.info ">>>>>>>>>> TodaysDate="+TodaysDate 
log.info TodaysDate.next() 

輸出:

週三7月19日十四時34分29秒EDT 2017年:信息:>>> >>>>>>> TodaysDate = 2017年7月19日
週三7月19日14點34分29秒EDT 2017年:信息:2017年7月1日:

我想這也。

def Today = new java.text.SimpleDateFormat("yyyy-MM-dd").format(new Date()) 
log.info Today 
NextDay = Today.next() 
log.info NextDay 

輸出:

星期三年07月19 14點43分38秒EDT 2017:信息:2017年7月19日
星期三年07月19 14點43分38秒EDT 2017:信息:2017- 07-1:

這個next()迭代器適用於其他日期。你能幫我理解我在這裏做的不正確嗎?

回答

2

format()方法返回String。當您致電next()時,String,它increments the last character。所以,字符9is incremented到下一個unicode值,變成:

如果你想在一個特定格式的日期,首先你叫next()Date對象,那麼你格式化:

def TodaysDate = new java.util.Date() 
log.info ">>>>>>>>>> TodaysDate="+TodaysDate.format("yyyy-MM-dd") 
log.info TodaysDate.next().format("yyyy-MM-dd") 

的將打印TodaysDate=2017-07-19和下日期2017-07-20

0

也許值得使用TimeCategory在你的情況?看看這個簡單的代碼示例:

import groovy.time.TimeCategory 

use (TimeCategory) { 
    println new Date() + 1.day 
} 

它適用於任何日期。用今天的日期測試(2017-07-19) - 加入1.day會給你2017-07-20。希望能幫助到你。

+2

即使沒有TimeCategory,new Date()+ 1'也會在日期中添加一天。但是,當您想要添加非日單位時,TimeCategory很有用。 – bdkosher