{Resolvido}MySql Retorna 2013-01-29 00:00:00

6 respostas
magalli

O MySql tá gravando no banco a data errada e a hora errada(2013-01-29 00:00:00) a variavel esta como DateTime no banco,
eu estou usando esse código

fiz uma classe control, nela temos

public String dataMaquina() {

        SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
        java.util.Date data = new java.util.Date();
        return formato.format(data).toString();
    }

Para gravar no banco fiz assim

pstm.setDate(1, estoque.getData());

Na tela de cadastro

java.util.Date dataCadastro;
        java.sql.Date dataCadastroSql = null;

        try {
            dataCadastro = new SimpleDateFormat("dd/mm/yyyy").parse(estoqueControl.dataMaquina());
            dataCadastroSql = new java.sql.Date(dataCadastro.getTime());
        } catch (ParseException ex) {
            Logger.getLogger(CadastroEstoque.class.getName()).log(Level.SEVERE, null, ex);
        }

Depois para setar temos

cadastro.setData(dataCadastroSql);

E no banco dá pau..

6 Respostas

TerraSkilll

Acho que você não está enviando a hora, os minutos e os segundos para o banco. Veja que a sua formatação excluir o horário:

SimpleDateFormat formato = new SimpleDateFormat(“dd/MM/yyyy”);

SimpleDateFormat(“dd/mm/yyyy”).parse(estoqueControl.dataMaquina());

Imagino que deveria ser algo do tipo:

SimpleDateFormat formato = new SimpleDateFormat(“dd/MM/yyyy H:m:s”);

SimpleDateFormat(“dd/mm/yyyy H:m:s”).parse(estoqueControl.dataMaquina());

Veja: http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

Abraço.

magalli

TerraSkill meu problema com o mes errado resolvi eu tava usando assim,

("dd/mm/yyyy")

e tem que ser assim

("dd/MM/yyyy")

Agora a questão de aparecer o horario não consegui tava lendo que tem que usar o Timestamp,
alguém sabe como eu uso ele ???

magalli

Alterei o data maquina, para pegar o timestamp tenho que alterar mais em algum lugar ?
alguém sabe me dizer ?

public String dataMaquina() {

        
        SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
        java.util.Date data = new java.util.Date();
        Timestamp hora = new Timestamp(data.getTime());
        return formato.format(hora).toString();
    }
magalli

Como faz o uso do TimeStamp ???

B

Para formatar uma java.util.Date em String com data e hora

public String formataDataHora(java.util.Date data) {
		SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
		return formato.format(data);
	}

Para converter uma String com data e hora em java.util.Date

public java.util.Date converteDataHora(String dataHora) throws ParseException {
		SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
		return formato.parse(dataHora);
	}

Para colocar uma data e hora no banco, a partir de um java.util.Date:

java.sql.Timestamp timestamp = new java.sql.Timestamp(data.getTime());
preparedStatement.setTimestamp(indiceParametro, timestamp);

Para pegar uma data e hora do banco, e colocar num java.util.Date:

data = resultSet.getTimestamp(nomeColuna); // funciona pq o java.sql.Timestamp é uma subclasse de java.util.Date
magalli

Obrigada pela resposta, resolvido.

Criado 29 de maio de 2013
Ultima resposta 29 de mai. de 2013
Respostas 6
Participantes 3