【发布时间】:2017-07-13 21:14:54
【问题描述】:
我正在尝试编写一个方法,该方法将两个java.util.Date 作为参数并在Scala 中返回这两者之间的随机java.util.Date。但是,我每次都得到相同的虚拟结果。我的代码有什么问题?
注意:
randomDateBetween(new Date(2017, 1, 1), new Date(2018, 1, 1)) 总是返回Tue Jun 12 09:36:00 EET 3917
代码:
def randomDateBetween( firstDate : Date, secondDate : Date) : Date =
{
val ratio = new Random().nextInt(100);
val difference = (secondDate.getTime - firstDate.getTime)
val surplusMillis = (difference * (ratio / 100.0)).asInstanceOf[Long]
val cal = Calendar.getInstance()
cal.setTimeInMillis(surplusMillis + firstDate.getTime)
return cal.getTime()
}
我修好了,还是谢谢你们。错误的原因是 java.util.Date 被弃用。我像这样更改了我的方法调用,它工作得非常好:
val date1 = Calendar.getInstance
val date2 = Calendar.getInstance
date1.set(2017, 1, 1)
date2.set(2018, 1, 1)
randomDateBetween(date1.getTime, date2.getTime)
【问题讨论】:
-
不是弃用,而是你没看文档:“year the year-1900”