在Groovy中生成特定范围内的随机日期

Ru *_* Ru 2 groovy date

我最近开始学习Grails和Groovy,并且在某个范围内生成日期非常困难.

我可以根据年份差异生成日期.但是如何添加月份和日期?

这就是我使用DatesUtils获得的

DateUtils.addYears(new Date() , -(18 + new Random().nextInt(20)))
Run Code Online (Sandbox Code Playgroud)

这可以生成基于年份的日期.但我会一直在同一个月.如何添加一个月,这样我也可以将月份随机化

tim*_*tes 8

另一种方式:

Date randomDate(Range<Date> range) {
    range.from + new Random().nextInt(range.to - range.from + 1)
}
Run Code Online (Sandbox Code Playgroud)

然后,你可以这样做:

def start = Date.parse('yyyy-MM-dd', '2015-01-01')
def end   = Date.parse('yyyy-MM-dd', '2015-01-10')
println randomDate(start..end)
Run Code Online (Sandbox Code Playgroud)