Ниже код печатает статическое системное время каждые две секунды, но я хочу печатать динамическое системное время каждые 2 секунды - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь написать простую 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 Ответ

0 голосов
/ 11 февраля 2019

Здесь:

Calendar cal = Calendar.getInstance();

Этот вызов извлекает время.

Затем вы превращаете этого времени в дату, а затем в строку 10 раз.Вам нужно будет получить новый экземпляр Calendar в цикле!

Но в 2019 году реальный ответ - использовать вместо него LocalDateTime.now().Календарь / Дата серьезно серьезно устарели и больше не рекомендуются к использованию!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...