我正在尝试使用Date类来获取每次循环执行时的当前时间。到目前为止,我有:
Date timeNow = new Date();
while(true){
System.out.println(timeNow.getTime()); //prints current time
Thread.sleep(10000);//sleep 10 secounds
}
当重新打印时,它只显示每次打印的相同时间,而不是10秒后。我究竟做错了什么?谢谢你的帮助。
答案 0 :(得分:2)
您在while循环之外创建了timeNow。在施工时捕获此对象的时间。当您在while循环的范围内移动它时,您每次都会获得一个新对象,表示它创建的时间。
while(true) {
Date timeNow = new Date();
System.out.println(timeNow.getTime()); //prints current time
Thread.sleep(10000);//sleep 10 secounds
}
请注意Date
的默认构造函数等同于..
Date timeNow = new Date(System.currentTimeMillis());
答案 1 :(得分:0)
执行Date myDate = new Date()
时,使用当前系统时间创建Date
对象。
无论何时拨打myDate.getTime()
,您都会获得相同的输出,即创建对象时的时间。
要查看其他时间,您需要在每个Date
之后创建一个新的Thread.sleep(10000)
对象,如下所示:
while(true) {
Date myDate = new Date()
System.out.println(myDate.getTime()); //prints current time
Thread.sleep(10000);//sleep 10 seconds
}