我正在尝试编写一个简单的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();
}
}
答案 0 :(得分:2)
这里:
Calendar cal = Calendar.getInstance();
那个呼叫获取时间。
然后将该时间转换为日期,然后将其转换为字符串十次。 您必须在循环中 内获取一个新的Calendar实例!
但是在2019年,真正的答案是改为使用LocalDateTime.now()
。日历/日期的内容严重已过时,不建议再使用!