Как сделать scheduleAtFixedRate принимать аргумент в часах, а не в ms, как это делается ниже? Программа должна работать с регулярными 1-часовыми интервалами, то есть 11: 25: 00: 00, 12: 25: 00: 00 и т. Д.Сделать графикAtFixedRate принимать часы вместо ms?
public class Kronos {
public static void main(String[] args) throws ParseException {
DateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d = dateFormatter.parse("2017-02-09 11:25:00");
long hours = 1;
long msPerHour = 3600000;
long period = hours * msPerHour;
Timer timer = new Timer();
TimerTask taskNew = new TimerTask() {
@Override
public void run() {
System.out.println("ALL WORK AND NO PLAY MAKES JACK A DULL BOY");
}
};
taskNew.scheduledExecutionTime();
timer.scheduleAtFixedRate(taskNew, d, period);
}
}
Изначально я считал что-то вроде TimeFormat.HOURS
, но я не знаю, как это осуществить ...
Что значит «принять аргумент в часах»? Ваш код делает то, что вы хотите ... – IQV
Вы можете использовать 'TimeUnit.HOURS.toMillis (часы)' –
Использовать 'TimeUnit.HOURS.toMillis (numberOfHours)'. –