Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Converter Retorno de Date com TimeStamp - Java

Boa tarde pessoal,

A dúvida que eu trago hoje é relativamente boba no cenário de programação creio eu, mas como cada um faz de uma forma eu acabo ficando perdido nas minhas buscas.

O problema é o seguinte:

  • Estou salvando uma data de nascimento no banco no formato '1995-09-08' (tipo1), no formulário está no formato 'dd/MM/yyyy' (tipo2).

  • Porém, agora estou tentando recuperar essa informação do banco para preencher uma JTextField. Ou seja, anteriormente eu fiz do modo 2 para o 1. Agora preciso fazer o inverto mas não estou sabendo fazer.

Se alguém tiver uma luz que possa me ajudar.


Eu tenho uma classe chamada Data onde eu faço a primeira conversão.

public class Data {

    public static java.sql.Date ConvertDataBanco(java.util.Date data) {

        return new java.sql.Date(data.getTime());

    }  
}

E na hora de gravar no banco eu gravo passando esse comando no statement

stmt.setDate(3, Data.ConvertDataBanco(visitante.getData_entrada()));

Nisso tenho também um evento de mouseClicked onde eu retorno para o formulário todos os dados de um determinado registro e é exatamente nesse momento que eu precisaria fazer essa segunda conversão.

if(tabelaMoradores.getSelectedRow() != -1) {

data_nascimento.setText(tabelaMoradores.getValueAt(tabelaMoradores.getSelectedRow(), 11).toString());

        }

Bom, se precisarem de mais informações do código para conseguirem me ajudar, só falar.

3 respostas

Galera, já descobri a solução. Assim que eu ajeitar tudo no projeto que envolve retorno de data eu explico aqui.

Att. Mais tarde coloco a solução aqui, eu juro kkk

Fala Rafael! Tudo bem contigo?

Que bacana que encontrou a solução

Fiquei curioso como conseguiu resolver =D

Uma possibilidade seria transformar chamando o getTime:

import java.sql.Timestamp;    
import java.util.Date;    
 public class DateEmTimestamp {    
       public static void main(String args[]){    
                Date data = new Date();  
                Timestamp timestamp=new Timestamp(data.getTime());  
                System.out.println(timestamp);                     
        }    
}  

Uma outra possibilidade é utilizar uma formatação de como queremos (que acredito que tenha sido nesse sentido)

import java.sql.Timestamp;    
import java.util.Date;    
 public class DateEmTimestamp {    
       public static void main(String args[]){    
                Date data = new Date();  
                Timestamp timestamp=new Timestamp(data.getTime()); 
                SimpleDateFormat formatar = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
                System.out.println(timestamp);                     
        }    
}  

Fico no aguardo do seu retorno, Rafael!

Um abraço!!!

solução!

Então, seguinte. A minha solução é até bem simples

    public static String Format(String formato, Date data) {

    SimpleDateFormat sdf = new SimpleDateFormat(formato);

    String dataString = sdf.format(data);

    return dataString;

    }

Fiz uma classe Data onde estou concentrando tudo referente a data e hora do sistema. Lá eu criei esse método, posso passar qualquer data por parâmetro para esse método que ele irá me retornar o formato que eu mesmo definir na hora que estiver passando o parâmetro, por exemplo:

morador.setDataNascimento(Data.Format("dd/MM/yyyy",(rs.getDate("data_nascimento"))));

Acabou que não usei timestamp no final das contas. Usei apenas o tipo Date. Mas achei interessante a sua sugestão Cássio, depois vou tentar aplicar ela.

Edit:

  • É possível deixar pré definido o formato já no método Format para que não seja preciso digitar o formato toda vez que for chamar o método.