Eu criei um Timer no JavaFX -
long minutos = 0;
long segundos = 0;
long horas = 0;
private Thread threadCronometro;
public void resetarCronometro(){
minutos = 0;
segundos = 0;
horas = 0;
}
public void iniciarCronometro(){
threadCronometro = new Thread(){
@Override
public void run() {
try {
while (true){
Thread.sleep(1000); //Dorme por 1 segundo
segundos++;
if (segundos % 60 == 0){ minutos++; segundos = 0;}
if (minutos % 60 == 0){ horas++; horas = 0;}
//Se não usar o platform, dá erro no JavaFX
Platform.runLater(new Runnable() {
@Override
public void run() {
String formatedString = String.format("%02d:%02d:%02d" ,horas,minutos,segundos);
lbTimer.setText(formatedString);
}
});
}
}catch (Exception ignored){
}
}
};
threadCronometro.start();
}
Porém quando eu tento mandar os valores do timer para o Mysql ele por algum motivo altera o valor da Hora, por exemplo o timer no JavaFX esta 00:00:00 ao mandar para o mysql ele salva com 03:00:00.
Não sei porque esta acontecendo isso, aqui segue o código de como eu salvo os valores:
DateFormat df = new SimpleDateFormat("hh:mm:ss");
String tempoS = String.format("%02d:%02d:%02d" ,horas,minutos,segundos);
try {
java.sql.Time tempo = new java.sql.Time(df.parse(tempoS).getTime());
ca.salvarDataEntrada(Integer.parseInt(item.txt.substring(0,1)),tempo);
} catch (SQLException | ParseException ex) {
ex.printStackTrace();
}