Função Formata Data

4 respostas
A
Boa Tarde! Em pesquisa nos posts do fórum, cheguei a função de formatação de data abaixo. Porém, o retorno da função está gravando no banco de dados a data atual do sistema. Não consigo ver o que há de errado com a minha função. Poderiam, por gentileza me auxiliar com isso? Segue o código da função e o código da chamada da função:
public String formataData_Mysql(String DataText){
        Date data = new Date();
        String retorno = "";

        SimpleDateFormat formatarDate = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

        try {
            data = formatarDate.parse(DataText);
            retorno = formatarDate.format(data);
        } catch (Exception ex) {
            String message = ex.getMessage();
           //JOptionPane.showMessageDialog(null,"Formato: " + formatarDate.format(data) + " - Erro ao gravar: " + ex.getMessage(),"Mensagem",JOptionPane.INFORMATION_MESSAGE);
        }

        return retorno;
    }
SQL += "'" + objFormatacao.formataData_Mysql(jtxtDT_Nasc.getText().toString()) + "',";

Aguardo retorno de vocês.

4 Respostas

SandroSoftwares

pergunta básica: o que está digitando dentro de jtxtDT_Nasc.getText()?

talvez esteja digitando a data atual no textfield não?

A

Com certeza não!
Esta foi a primeira verificação que fiz. Inclusive, fui colocando uma caixa de mensagem para poder saber qual o momento em que a função se perdia e eu acredito que seja na conversão de string pra date.
O input do campo é 24/07/1956.

SandroSoftwares

olha, eu aqui quando quero gravar uma data no campo do banco DATE faço o seguinte:

  1. até antes da gravação a data é considerada uma String.

  2. só que eu pego a string digitada e quebro-a em dia, mes e ano

  3. confiro para ver se existe o dia, mes e ano,

  4. reordenando-a para ano/ mes/ dia (aceito pelo campo date no mysql)

postei em um fórum recentemente por aqui…

[i][b]voce poderia capturar a data digitada pelo usuário com um JcomboBox para dia, outro para mes e outro para ano.

Assim na hora de salvar vc uni as strings:

ano + “-” + mes + “-” + ano

outra solução seria você capturar a string (data) digitada pelo usuario e fazer:

String diaStr = data.substring(0, 2);

String barra1 = data.substring(2,3);

String mesStr = data.substring(3, 5);

String barra2 = data.substring(5,6);

String anoStr = data.substring(6, 10);

pronto… aqui você tem o dia, mes e ano separados!

é só concatenar na ordem inversa! [/b][/i]

pronto… só isso aqui resolveu.

Se ao invés de fazer uma transformação para date seu metodo formataData_Mysql(String DataText) recebesse a string e fizesse isso ai a cima, retornando a string reconcatenada em ano/mes/dia creio que resolveria.

F

Você precisa usar um DateFormat (“dd/MM/YYYY”) para transformar o texto em data e depois outro “yyyy-MM-dd hh:mm:ss” para transformar a data em texto.

tente programar se não conseguir poste aqui…

Criado 22 de maio de 2011
Ultima resposta 23 de mai. de 2011
Respostas 4
Participantes 3