Отображение прошедшего времени с поддержкой месяца и дня в JAVA

#java #timer #simpledateformat #elapsedtime

#java #таймер #simpledateformat #истекшее время

Вопрос:

Мне нужно отобразить прошедшее время в моей форме заявки.
В настоящее время я делаю это с помощью этого кода:

     AppTimer = new Timer();
    AppTimer.scheduleAtFixedRate(new java.util.TimerTask() {
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
        public void run() {
            sdf.setTimeZone(java.util.TimeZone.getTimeZone("GMT 0"));
            lblAppRunTime.setText("" sdf.format(new Date(AppTimeCounter*1000)));
            AppTimeCounter  ;
        }
    },1000, 1000);
  

Этот код правильно отображает часы, минуты и секунды, но как я могу показать ДНИ и МЕСЯЦЫ?
new SimpleDateFormat("M D HH:mm:ss") не могу этого сделать, и, например, по истечении 5 секунд он показывает 1 месяц и 1 день тоже!

Как я могу показать месяц и день тоже?

Спасибо

Ответ №1:

Вы не должны использовать для этого класс Date, потому что дата — это момент времени, но вы используете его как длительность. Пожалуйста, внимательно прочитайте документацию joda time об этом. И тогда вы могли бы использовать Period и PeriodFormatter для вашей задачи. Или напишите что-нибудь подобное, если вы не хотите использовать библиотеку.