我正在使用以下Java代码生成随机日期:
LocalDate localDate = LocalDate.now().minus(Period.ofDays((new Random().nextInt(365 * 70))));
Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
有没有办法限制过去12个月内的随机日期?
答案 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);