Как узнать время с начала работы таймера (class Timer)?

332
24 марта 2017, 23:09
class MyTimerTask extends TimerTask{
  public void run() {...};
}
class Main(){
  MyTimerTask myTask = new MyTimerTask();
  Timer myTimer = new Timer();
  myTimer.schedule(myTask,0 , 5000);
  if(...){
  //Получить текущие время таймера
  }
}

или нужно использовать какой-то другой класс?

Answer 1

Смотрели класс Calendar?

    java.util.Calendar calendarTime = java.util.Calendar.getInstance();
    int nHour = calendarTime.get(java.util.Calendar.HOUR_OF_DAY);
    int nMinute = calendarTime.get(java.util.Calendar.MINUTE);
    // nHour/nMinute будут иметь текущие значения часов или минут
    // можно вытаскивать также и секунды и так далее

Если тебе надо работать с миллисекундами, то весь код ниже преобразует миллисекунды в нужные значения

    long timeInMilliseconds = calendarTime.getTimeInMillis();
    //проводишь здесь какую-то свою работу
    //...
    // и теперь вытаскиваешь нужное из обьекта data, там будет та дата,
    // которую ты сохранил вначале и присвоил этому объекту
    Date date = new Date();
    date.setTime(timeInMilliseconds);
    date.getDate();
    date.getDay();
    date.getHours();
    date.getMinutes();
    date.getSeconds();
    date.getYear();
    date.getMonth();
    Log.e("TAG", "onCreate: timeInMilliseconds() = " + timeInMilliseconds);
    Log.e("TAG", "onCreate: date.getDate() = " + date.getDate());
    Log.e("TAG", "onCreate: date.getDay() = " + date.getDay());
    Log.e("TAG", "onCreate: date.getHours() = " + date.getHours());
    Log.e("TAG", "onCreate: date.getMinutes() = " + date.getMinutes());
    Log.e("TAG", "onCreate: date.getSeconds() = " + date.getSeconds());
    Log.e("TAG", "onCreate: date.getYear() = " + date.getYear());
    Log.e("TAG", "onCreate: date.getMonth() = " + date.getMonth());

У меня работает, проверял.

Если тебе нужно будет узнать разницу начального и конечного времени, создаёшь один timeInMilliseconds вначале процесса и один timeInMilliseconds2 в конце, а после, вычитаешь 2е от 1го и переводишь в нормальный вид через класс Date(как я сделал выше)

READ ALSO
Фокус на JWindow

Фокус на JWindow

Мне нужно сделать прослушивание клавы, но использовать JFrame нельзя, только JWindowВыходит, что при нажатии ничего не происходит

291