PreparedStatement.setDate(int,java.sql.Date,Calendar)

Ola pessoal, estava fazendo uns testes aqui e estou tendo algumas dificuldades e agradeço se alguem puder ajudar. Como o nome do topico sugere, estou tendo dificuldades em especial com esse metodo. Antes eu usava esse mesmo metodo setDate mas com outra assinatura: .setDate(int, Date) ; Só que comecei a ter problemas com o java.sql.Date por ele ter varios metodos obsoletos e estar setando a data errado. Entao resolvi aposenta-lo e usar calendar para tudo. Mas na hora de colocar no banco atraves do PreparedStatement estou tendo dificuldades. Encontrei esse metodo que recebe um calendar mas nao estou sabendo como usa-lo. Estou colocando um calendar com a data que eu preciso, e um new java.sql.Date mas nao esta dando certo. Ele nao esta pegando a data do calendar, que pelo que entendi é isso que esse metodo faz. Atualmente estou usando um setString e pegando os dados do calendar como paleativo, mas esta deixando o codigo muito carregado. Queria usar esse setDate mas acho que nao estou sabendo usa-lo. Alguma sugestao?

Desde ja agradeço.

up

Aqui sempre usamos Date e nunca tivemos esses problemas dele setar a data errado… vc pode dar mais detalhes sobre o que estava acontecendo?

Tipo coloco o ano 2011 e ele seta 3920 no banco =/
Eu ja tava mesmo querendo aposentar Date…tem mt coisa deprecated

up? =/

Cara estou com essa mesma dúvida que você como vc conseguiu resolver este problema, ajuda ai.

Ola amigo. Na época resolvi da seguinte forma:

ps.setDate(0, new Date(Calendar.getInstance().getTimeInMillis()));

Ou seja, pego o tempo do calendario em ms e seto em um new java.sql.Date.

Funciona perfeitamente.

Fera muito bom, funcionou perfeitamente. Vou usar dessa maneira mesmo, mas ainda continuo sem entender o outro método do setDate(int parameter, Date x, Calendar date);

Pra mim tambem ainda é um enigma. =D
Aparentemente todo mundo usa essa que postei acima :smiley: