使用Date类Java的时间戳

时间:2015-11-23 04:27:01

标签: java time

我正在尝试使用Date类来获取每次循环执行时的当前时间。到目前为止,我有:

Date timeNow = new Date();

while(true){

System.out.println(timeNow.getTime()); //prints current time

    Thread.sleep(10000);//sleep 10 secounds

}

当重新打印时,它只显示每次打印的相同时间,而不是10秒后。我究竟做错了什么?谢谢你的帮助。

2 个答案:

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