有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

下面的java代码每两秒打印一次静态系统时间,但我想每两秒打印一次动态系统时间

我正试图编写一个简单的java程序,每2秒动态打印一次当前时间。事实上,它每2秒打印一次,但打印的时间与当前时间完全相同。 我不知道为什么,, 以下是我尝试过的:

import java.text.SimpleDateFormat;
import java.util.Calendar;

public class curtime extends Thread {

public void run()
{
     Calendar cal = Calendar.getInstance();
     for (int i=0;i<=10;i++)
        try {
            Thread.sleep(2000);
            SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
            System.out.println( sdf.format(cal.getTime()) );

        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

}
public static void main(String args[])
{
        curtime cut = new curtime();
        cut.start();
}
}

共 (1) 个答案

  1. # 1 楼答案

    在这里:

    Calendar cal = Calendar.getInstance();
    

    调用获取时间

    然后将时间转换为日期,然后再转换为字符串10次。 您必须在循环中获取一个新的日历实例

    但在2019年,真正的答案是使用LocalDateTime.now()。日历/日期内容已严重过时,不建议再使用