Converter o Timestamp armazenado no MySQL para JAVA

Pessoal, Boa Tarde !

Estou com um pepinão para resolver Hahahahaha…

Tenho uma data armazenada no Banco de Dados ( em formato Timestamp). Essa data foi inserida a partir de um script PHP que convertia a data do sistema em timestamp e gravava no Banco…

Agora é o seguinte…

Ao ler os registros e tentar converter: com o seguinte trecho de codigo


Date resultado = new Date(rs.getTimestamp("data").getTime());
System.out.println("Data:" + resultado.toString());

Retorna uma data errada…

no exemplo: Data:Thu Sep 04 23:06:00 BRT 2014

OUVI DIZER: que tem uma diferença do timestamp gerado do MySQL para o Java…
Agora… , como faço para resolver isso…

Precisava pegar ottimestamp armazenado na coluna data e converter certinho…

Galera, agradeço a força.

Bom fim de semana a todos.

Mateus

Mas você quer apresentar a data como!!! dd/mm/aaaa hh:mm:ss ???

Olá Thiago, tudo blz?

Olha, o formato pode ser dd/MM/yyyy

Mas o MAIOR problema é que a data está vindo ERRADA do BD… ou seja , naum é aquela data que postei anteriormente do ano de 2014 :?

Abraço,

Mateus

[quote=mateus_dias]Essa data foi inserida a partir de um script PHP que convertia a data do sistema em timestamp e gravava no Banco…
[/quote]

De repente não pode ter sido o próprio php que gerou a data errada?!
Testei aqui e funcionou legal! Veja se a data não está errada, é bem provavel que os dados tenham sido gravados errado!

Pois é Thiago…

Conferi e a data (no sistema em PHP que usa a mesma tabela) aparece corretamente :shock:

Caramba… E agora hehehe…
Abraço,

Mateus

Como está data está no campo?!

Faz assim :

Date resultado = rs.getDate("data");
 System.out.println("Data:" + resultado.toString());

Bom vamos ao complicado…

  1. Precisei certificar que a data não está errada no BANCO, então, descobri um site que dado um Timestamp, mostra a data no padrão americano (e esta é a data que aparece no sistema em PHP e está certa) - fiz um select Max(data) para retornar o maior timestamp:
    1144426926

http://www.developertutorials.com/tools/unix-timestamp-converter.php

No site retorna no padrao americano: 4/7/2006 4:22:06 PM

  1. Fiz um trecho de código com a data, manualmente, sem buscar na tabela no MySQL
long data = (1144426926);
System.out.println(data);		
Date resultado = new Date(data);
System.out.println("Data: " + resultado.toString());

Retornou isso: Data: Wed Jan 14 02:53:46 BRT 1970

  1. O que é pior … com o acesso a dados pelo banco, no mesmo timestamp Retorna outra data diferente !
    Sat Sep 13 21:26:00 BRT 2014
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT Max(data)as data FROM Curso_acessos");

	        
if (stmt.execute("SELECT Max(data) as data FROM Curso_acessos")) {
       rs = stmt.getResultSet();
	            
       while(rs.next())
       {
Date resultado = new Date(rs.getTimestamp("data").getTime());
              	System.out.println("Data:" + resultado.toString());
         }
}           

Thiago e Alexandre: que coisa hein !!!

E agora né…??

Abração pra vcs.

Mateus.

Pessoal, para tudo se dá um jeito.

Resolvi de uma outra forma… “já que a montanha não vai até maomé, maomé decidiu ir até a montanha hehehehe”

Existe uma função do MySQL que já transforma a data em timestamp para o formato que desejo trabalhar então segue um exemplo de uma query já transformando o Timestamp aí:

Select cod_usuario, from_unixtime(data) as data_acesso, cod_ferramenta from Curso_acessos where (cod_ferramenta != “”) order by data_acesso desc;

Abraço a todos,
Valeu pela força.

Mateus