groovy日期加上错误的日期

时间:2018-04-21 21:32:29

标签: groovy time dateadd

我正在尝试生成一个随机日期,然后再添加5天。它大部分时间都可以正常工作,但是当新的日期进入明年时,结果实际上会回到同年的开始。不知道为什么......这是我的代码

Date today = new Date();
def endRange = 1500
def randomInterval = new Random().nextInt(endRange)
startDate = today.plus(randomInterval)
endDate= startDate.plus(5)

我在循环中运行1000次,其中18次重置回到同一年或增加一年。不知道为什么。以下是两个示例输出结果

startdate         enddate
2022-12-27   -- > 2022-01-01
2020-12-26  -- >  2021-12-31

感谢您对此的任何帮助

// update

经过一点挖掘后,在写入excel之前将日期格式更改为“YYYY-MM-dd”之后就会发生这种情况,因为这是我需要的格式。并且它会持续发生在添加5天后转入明年的任何日期。

Date today = new Date();
def minStart = today+5 //diff_currentDt_startDt
def endRange = 1500
def randomInterval = new Random().nextInt(endRange)
startDate = today.plus(randomInterval)
endDate= startDate.plus(diff_startDt_endDt)
// after this I format them and then write to excel
def startDate1=startDate.format('YYYY-MM-dd')
def endDate1=endDate.format('YYYY-MM-dd')
Label label1= new Label(0, i, startDate1)
sheet.addCell(label1)
Label label2= new Label(1, i, endDate1);
sheet.addCell(label2);

再次进一步检查,不知何故格式搞乱了。以下是格式化之前和之后的日期

Tue Dec 24 19:31:02 EST 2019  //startdate
2019-12-24  // startdate in YYYY-MM-dd format
Sun Dec 29 19:31:02 EST 2019  // enddate (startdate +5)
2020-12-29 // enddate in YYYY-MM-dd format

我做错了什么?

1 个答案:

答案 0 :(得分:-1)

看起来像" YYYY"在.format(' YYYY-MM-dd')中将问题更改为" yyyy"在.format(' yyyy-MM-dd')