我需要在java中随机化一个时间。
如果现在是24/2/2021 13:56:13
,那么我需要在23/2/2021 13:56:13
和之间随机化一个时间24/2/2021 13:56:13
。我对 Java 中的随机函数不熟悉,所以我可能需要一些帮助。感谢您的关注。
我需要在java中随机化一个时间。
如果现在是24/2/2021 13:56:13
,那么我需要在23/2/2021 13:56:13
和之间随机化一个时间24/2/2021 13:56:13
。我对 Java 中的随机函数不熟悉,所以我可能需要一些帮助。感谢您的关注。
然后以LocalDateTime.now()
0 到 86400 之间的随机秒数返回时间
int randomSeconds = new Random().nextInt(3600 * 24);
LocalDateTime anyTime = LocalDateTime.now().minusSeconds(randomSeconds);
System.out.println(anyTime);
一般解决方案
定义期间的开始dates
和结束
以秒为单位计算差异并获得该范围内的随机 int
使用以下两种方式之一计算随机日期:
LocalDateTime periodStart = LocalDateTime.now().minusDays(1);
LocalDateTime periodEnd = LocalDateTime.now();
int randomSeconds = new Random().nextInt((int) periodStart.until(periodEnd, ChronoUnit.SECONDS));
//LocalDateTime anyTime = periodStart.plusSeconds(randomSeconds);
LocalDateTime anyTime = periodEnd.minusSeconds(randomSeconds);