时间1:10:30 06/05/2018
时间2:19:45 06/05 2018
我想在这两次之间选择一个随机时间。结果可能是(13:15 06/05/2018
)。
我查看日历,但似乎不支持像range(time1, time2)
此案例的解决方案是什么?感谢。
答案 0 :(得分:1)
你应该首先将时间对象转换为long
,如下所示(我想你已经有两个Calendar
个对象了)
long time1InLong = time1.getTimeInMillis();
long time2InLong = time2.getTimeInMillis();
然后您可以使用以下代码生成随机数
Random r = new Random();
long randomTime = r.nextLong(time2InLong - time1InLong) + time1InLong;
然后,您可以将此randomTime
转换回Calendar
,如下所示
// Create a DateFormatter object for displaying date in specified format.
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm dd/MM/yyyy");
// Create a calendar object that will convert the date and time value in milliseconds to date.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(randomTime);
答案 1 :(得分:1)
我会用这样的东西。
Import
如果你有API 21+,请使用ThreadLocalRandom
mapred-site.xml