日期:2014-05-20  浏览次数:20811 次

怎么在创建一个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);

------解决方案--------------------
加个线程就可以实现了