Pegando a data errada após conversão para Timestamp

Ola,

Estou tendo dificuldades ao tentar converter a data que pego em DateTime para Timestamp, será que alguém pode me ajudar?

[code] // pega a data local
DateTime dt = new DateTime();
// traduz para a data local de SP
DateTime dtSP = dt.withZone(DateTimeZone.forID(“America/Sao_Paulo”));
// imprime a data certa de SP
System.out.println(dtSP);

    Timestamp timestamp = new Timestamp(dtSP.getMillis());

    System.out.println(timestamp);  [/code]

Quando eu converto para Timestamp eu continuo pegando o horário local da máquina ao invéz do que vem no objeto dtSP, só na hora da conversão mesmo que pega a data local:

2010-01-18T13:29:57.864-02:00

2010-01-18 10:29:57.864

A representação interna dos dois horários é a mesma, eles estão certos. O que difere é o que você está imprimindo.

Passe este argumento p/ a tua máquina virtual qdo for rodá-la:

-Duser.timezone=America/Sao_Paulo
ou
-Duser.timezone=GMT-2

Olá pessoal, tudo bom? Gostaria de contar com a ajuda de vcs novamente. O problema é o seguinte:

  • tenho uma String que guarda horário, p.e. “12:30”

  • preciso gravar este valor no SQL Server, num campo do tipo Date.

  • transformei essa String em Timestamp, com o seguinte métod:

    public static java.sql.Timestamp transformaHora(String hora) trows ParseException{//p.e. hora = “13:15”

    DateFormat fmt = new SimpleDateFormat("HH:mm:ss");
    java.sql.Timestamp hora = new java.sql.Timestamp(fmt.parse(hora).getTime());
    
    return hora;
    

    }

  • soh que o objeto da Timestamp está gravando nao soh a hora, mas tambem a data.

  • alguém sabe como resolver isto? Obrigada!!!