Retornar string para dentro de cronometro (timer)

1 resposta Resolvido
java
Renan_Nogueira

Pessoal, possuo uma classe cronometro com um metodo cronometrar.

public void cronometrar(){
        tm.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
          contador++;
          seg = contador % 60;
          min = contador / 60;
          hora = min / 60;
          min %= 60;
          tempo=(String.format("%02d:%02d:%02d", hora,min,seg));
        }
      }, 1000, 1000);

}

Em minha classe controladora eu instancio o cronometro e rodo o cronometrar e salvo no banco a variavel tempo.

Minha dificuldade esta ocorrendo quando tempo recuperar o tempo que esta armazenado no banco e volta-lo ao cronometro, para iniciar o cronometro a partir do tempo coletado. Estou tentando retornar os dados para o cronometro da seguinte forma abaixo, porém sem sucesso ainda.

public void recuperarDados(Cronometro cronometro){
    String array[] = new String[3];
    array = dao.readTempo(cronometro).split(":");
    int seg = Integer.parseInt(array[2]);
    int min = Integer.parseInt(array[1]);
    int hora = Integer.parseInt(array[0]);
    cronometro.seg = seg ;
    cronometro.min = min;
    cronometro.hora = hora;

}

Da seguinte forma que esta, esta recuperando o tempo até 1 minuto.
Por exemplo, se o tempo salvo for abaixo de 00:00:59, recupera o tempo, se passar de 1 min não esta recuperando o valor correto.

1 Resposta

darlan_machado
Solucao aceita

Se está usando java <= 1.7:
Salve no banco de dados como timestamp.
Ao recuperar, converta para GregorianCalendar. Os objetos de GregorianCalendar permitem que você obtenha, via invocação do método get, o dado específico, de acordo com a `documentação.

Se for java >= 8:
Salve no banco como timestamp.
Ao recuperar, converta para LocalDateTime. Os objetos de LocalDateTime permitem que você obtenha, via invocação do método get, o dado específico, de acordo com a documentação

Criado 6 de dezembro de 2019
Ultima resposta 6 de dez. de 2019
Respostas 1
Participantes 2