Hora / Data [RESOLVIDO]

7 respostas
lucaslzl

Bom dia,

gostaria de saber como faço para pegar a data e horário do computador do usuário para poder usa-lo na hora de cadastrar uma consulta.

Obrigado.

7 Respostas

morcinek

você pode criar um thread,

aqui vai oq eu uso, vai resolver:

private class ThreadHora extends Thread {
        public void run() {
            while (true) {
                try {
                    ThreadHora.sleep(1000);
                } catch (Exception e) {
                }
                Calendar f = Calendar.getInstance();
                String hora = f.get(java.util.Calendar.HOUR_OF_DAY) + ":" + f.get(java.util.Calendar.MINUTE) + ":" + f.get(java.util.Calendar.SECOND);
                seutextfield.settext(hora);
                String data = f.get(java.util.Calendar.DATE) + "/" + "12" + "/" + f.get(java.util.Calendar.YEAR);
                seutextfield.settext(data);
            }
        }
    }

depois é só instanciar e dar um start, onde você quiser

wagnerfrancisco

Me parece que o que o lucaslzl quer é simplesmente pegar a hora corrente, pra inserir num cadastro. Não é mostrar a hora na tela. Neste caso, basta:

Date agora = new Date();
lucaslzl

Sim, seria mais o que o wagner disse mas, eu tento usar os métodos getHours(), getMinutes(0, getSeconds() e ele fica riscado. Como faço para manusear esses valores?

Date data = new Date();
		String datacao = ""+data.getHours();
		ftfHorario.setText(datacao);
lucaslzl

Muito obrigado, eu usei o código do morcinek e funcionou melhor. Ele apenas não consegue setar o mes.

Calendar f = Calendar.getInstance();  
        String hora = f.get(java.util.Calendar.HOUR_OF_DAY) + ":" + f.get(java.util.Calendar.MINUTE) + ":" + f.get(java.util.Calendar.SECOND);  
        ftfHorario.setText(hora);  
        String data = f.get(java.util.Calendar.DATE) + "/" + ""+f.get(java.util.Calendar.MONTH) + "/" + f.get(java.util.Calendar.YEAR);  
        ftfData.setText(data);

se eu coloco assim ele buga.

wagnerfrancisco

O mês retorna 1 a menos (a contagem começa de 0), então vc precisa somar 1: f.get(Calendar.MONTH + 1).

Que bug você disse que tem?

lucaslzl

A mascara não deixa porque o retorno do mês é: “7” e não “07”, pelo menos eu acho que é isso. Ou ele ultrapassa o tamanho da mascara porque faz um barulho como se estivesse tentando digitar onde os espaços já estão completos.

Esse é o código da mascara:

//textfield Data
try   
{               
    mfData = new MaskFormatter("##/##/####");   
}  
catch (Exception erro)   
{               
    JOptionPane.showMessageDialog(null, "Não conseguiu carregar a mascara");   
}
ftfData = new JFormattedTextField(mfData);

E se eu tiro a mascara e coloco:

String data = f.get(java.util.Calendar.DATE) + "/" + ""+ f.get(java.util.Calendar.MONTH +1) +"/" + f.get(java.util.Calendar.YEAR);

Aparece o número “33” no lugar do mês.

Tem alguma dica para eu fazer ou no código da mascara ou no do mês para desbuggar?

Obrigado.

lucaslzl

Consegui resolver, muito obrigado pela ajuda.

Criado 12 de agosto de 2012
Ultima resposta 13 de ago. de 2012
Respostas 7
Participantes 3