获得两次之间的随机时间

时间:2018-05-06 06:16:44

标签: android calendar

时间1:10:30 06/05/2018

时间2:19:45 06/05 2018

我想在这两次之间选择一个随机时间。结果可能是(13:15 06/05/2018)。

我查看日历,但似乎不支持像range(time1, time2)

这样的方法

此案例的解决方案是什么?感谢。

2 个答案:

答案 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