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…
- 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
- 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
- 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