Timestamp conversão não bate!

3 respostas
M

Olá, Estou utilizando a Classe java.sql.Timestamp para converter uma data em timestamp, preciso que esse timestamp esteja em segundos (Unix Timestamp)
Quando faço a conversão e comparo com Unix Timestamp a conversão não bate.

Existe alguma diferença entre SQL Timestamp e Unix Timestamp?

Exemplo:
Data: 09/04/2009 00:00:00.0

...
import java.sql.Timestamp;
...
Timestamp time = new Timestamp(2009, 3, 9, 0, 0, 0, 0);
eventTimestamp = time.getTime() / 1000;

Resultado: [telefone removido]

Unix Timestamp: [telefone removido]

3 Respostas

T

Descontando o fato que o construtor de Timestamp indicado está “deprecated*”, você não leu direito a documentação.

Você tem de passar o ano, menos 1900. Ou seja, para o ano 2009, você tem de passar o valor 109.

(Eu acho que esteja “deprecated” por essas bizarrices como você ter de subtrair 1900 - argh - e Janeiro ser zero, não um como nas melhores famílias.)

OK?

M

thingol:
Descontando o fato que o construtor de Timestamp indicado está “deprecated*”, você não leu direito a documentação.

Você tem de passar o ano, menos 1900. Ou seja, para o ano 2009, você tem de passar o valor 109.

(Eu acho que esteja “deprecated” por essas bizarrices como você ter de subtrair 1900 - argh - e Janeiro ser zero, não um como nas melhores famílias.)

OK?

Nossa realmente passou despercebido, Valeus.

year - the year minus 1900

Teria alguma outra classe melhor para fazer essa conversão?

T

Normalmente uso SimpleDateFormat (parse me retorna um java.util.Date), e depois uso aquele construtor de java.sql.Timestamp que aceita um long.

Criado 9 de abril de 2009
Ultima resposta 9 de abr. de 2009
Respostas 3
Participantes 2