che*_*ish 9 java random-sample jodatime
是否可以使用Jodatime生成随机日期时间,使得日期时间的格式为yyyy-MM-dd HH:MM:SS并且它应该能够生成两个随机日期时间,其中Date2减去Date1将大于2分钟但小于60分钟.请提出一些方法.
The*_*bit 12
简单
long rangebegin = Timestamp.valueOf("2013-02-08 00:00:00").getTime();
long rangeend = Timestamp.valueOf("2013-02-08 00:58:00").getTime();
long diff = rangeend - rangebegin + 1;
Timestamp rand = new Timestamp(rangebegin + (long)(Math.random() * diff));
Run Code Online (Sandbox Code Playgroud)
bow*_*ore 11
这严格遵循您的要求(校正后的格式除外).
Random random = new Random();
DateTime startTime = new DateTime(random.nextLong()).withMillisOfSecond(0);
Minutes minimumPeriod = Minutes.TWO;
int minimumPeriodInSeconds = minimumPeriod.toStandardSeconds().getSeconds();
int maximumPeriodInSeconds = Hours.ONE.toStandardSeconds().getSeconds();
Seconds randomPeriod = Seconds.seconds(random.nextInt(maximumPeriodInSeconds - minimumPeriodInSeconds));
DateTime endTime = startTime.plus(minimumPeriod).plus(randomPeriod);
DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
System.out.println(dateTimeFormatter.print(startTime));
System.out.println(dateTimeFormatter.print(endTime));
Run Code Online (Sandbox Code Playgroud)
如果你运行它,你会注意到你会得到多年的离谱值,但这只是在DateTime(或Date)的整个可能范围内生成随机DateTime的结果.但是,如果需要,可以将结束时间限制在特定范围内的相同技术应用于开始时间.