【发布时间】:2018-04-21 21:32:29
【问题描述】:
我正在尝试生成一个随机日期,然后添加 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
感谢您对此的任何帮助
//更新
经过一番挖掘,这发生在我将日期格式更改为“YYYY-MM-dd”之后,然后再写入 excel,因为这是我需要的格式。并且在添加 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
我做错了什么?
【问题讨论】:
-
每次 startDate 为 27/12/.. 或更大时都会发生这种情况吗?我已经运行了您的 1000 测试几次,但没有复制您的结果,您的基本日期设置是什么?
-
错误是随机的,还是可以复制?如果您可以复制它,那么请将代码添加到问题中,以显示实际问题。
-
首先回答你的两个问题,经过一番挖掘之后,我在写入 excel 之前使用 ".format('YYYY-MM-dd') 格式化日期之后发生这种情况,因为那是我的格式需要它。更新主要问题。