怎么在创建一个Calendar类之后,可以使用之来获取当前的时间?
我想用当前时间的秒数作为随机数种来产生随机数,写出代码如下
Calendar c=Calendar.getInstance();
int second=c.get(Calenar.SECOND);
但是每次使用时这个second都是相同的值,这样就没办法产生不同的数字了,请高手指教一下怎么产获取的当前的瞬时秒数.
我也知道java.util.Random类可以用来产生随机数,但是想试试上面的方法.
------解决方案--------------------Calendar.SECOND是个静态常量,当然不会变的
你用new java.util.Date().getTime(),也不需要用Calendar了
------解决方案--------------------我是觉得Calendar c=Calendar.getInstance()时,就创建了一个Calendar的实例,时间就固定在那一刻了,所以产生不了随机变化的效果。
不知道我的解释是否行得通~~
------解决方案--------------------多种方法:
1 Calendar.getInstance().getTime().getTime();();//当前毫秒
2 System.currentTimeMillis();//当前毫秒
------解决方案--------------------让时间动起来我都是做一个简单的线程
------解决方案--------------------你再结合起用线程就可以显示出动态的时间了
------解决方案--------------------随机数
Random()就是以当前时间的毫秒数为种子生成的
new Random() 等效於 new Random(Calendar.getInstance().getTime().getTime())
也就是说,如果你要使用当前时间作为随机种子,直接用new Random()就行了
切记new Random()生成一次就好了,以后用next来生成就好了
Java里的随机数是伪随机数,依赖于随机种子,如果你在某一时间,一直拿当前时间作为种子,那得到的随机数都是 一样的
------解决方案--------------------同意楼上的!
你先new 一个Random类
然后用他的next方法!
Random random = new Random();
int second = random.next();
------解决方案--------------------试试这个。
Calendar c=Calendar.getInstance();
int second=c.get(c.SECOND);
------解决方案--------------------在每次调用c.get(Calenar.SECOND);之前,调用下列语句以得到当前时间
c.setTimeInMillis(System.currentTimeMillis());
------解决方案--------------------java.util.Calendar calendar = new java.util.GregorianCalendar();
hour = calendar.get(Calendar.HOUR);
minute = calendar.get(Calendar.MINUTE);
second = calendar.get(Calendar.SECOND);
------解决方案--------------------加个线程就可以实现了