生成过去12个月内的随机日期

时间:2019-02-06 16:52:21

标签: java

我正在使用以下Java代码生成随机日期:

LocalDate localDate = LocalDate.now().minus(Period.ofDays((new Random().nextInt(365 * 70))));
            Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());

有没有办法限制过去12个月内的随机日期?

1 个答案:

答案 0 :(得分:3)

您可能不想自己处理时区,leap年,leap秒等,因此我建议使用java.time库(java 8及更高版本)。

如果只希望LocalDate精度,则可以在指定范围内获得任意一天,例如:

LocalDate now = LocalDate.now();
LocalDate then = now.minusYears(1);

long difference = now.toEpochDay() - then.toEpochDay();
int randomDifference = random.nextInt((int) difference);

LocalDate randomDate = then.plusDays(randomDifference);