2017-07-19 4 views
2

今日の日付でnext()を使用して明日の日付を見つけるために、SoapUIにGroovyスクリプトを追加しようとしています。 日がある場合は19groovy next()date issue

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

出力以外のすべての日付の予想通り、私は日付を取得しています:

水曜日7月19日14時34分29秒EDT 2017:INFO:>>> >>>>>>> TodaysDate = 2017年7月19日
水曜日7月19日14時34分29秒EDT 2017:INFO:2017年7月1日:

は、私もこれを試してみました。

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

出力:

水曜日7月19日夜02時43分38秒EDT 2017:INFO:2017年7月19日
水曜日7月19日夜02時43分38秒EDT 2017:INFO:2017- 07-1:

このnext()イテレータは、他の日付で正常に動作します。私がここで間違っていることを理解するのを助けることができますか?

答えて

2

format()メソッドは、Stringを返します。 Stringnext()と電話すると、increments the last characterになります。したがって、文字9is incrementedを次のユニコード値に変更すると、:になります。

あなたが最初に、特定の形式であなたの日付をしたい場合は、あなたがそれをフォーマットし、Dateオブジェクトにnext()を呼び出す:

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

ザ・が2017-07-20としてTodaysDate=2017-07-19し、次の日付を印刷します。

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'は日付に日付を追加します。ただし、DayCategoryは、非日の単位を追加する場合に便利です。 – bdkosher