#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
для вашей задачи. Или напишите что-нибудь подобное, если вы не хотите использовать библиотеку.