Pessoal no meu banco tem uma coluna chamada data e o mesmo queria quando a cada cadastro dos valores a data atual do sistema fosse no momento do cadastro fiz a formatação mas não sai no banco.
Date data = new Date(System.currentTimeMillis());
SimpleDateFormat formataData = new SimpleDateFormat("dd-mm-yyyy");
formataData.format(data);
statement.setDate(3,credcard.getData());
statement.executeUpdate();[/code]
Pq vc não coloca o valor padrão do campo data no seu banco como uma função para pegar a data atual (ex no postgres Now()) e seta o campo como “Not Null”, nesse caso qdo vc for inserir um valor e quiser a data atual basta deixá-lo em branco.
Se não for possível, tente verificar a formatação do campo q vc está inserindo no banco ou poste o erro e o banco q vc está usando.
Date data = new Date(); // não precisa do System, o Date sabe fazer isso sozinho
statement.setDate(3,data); // não precisa formatar
statement.executeUpdate();[/code]
java.lang.RuntimeException: Uncompilable source code - no suitable constructor found for Date()
[quote=sergiotaborda][quote=carlos nascimento]
Pessoal no meu banco tem uma coluna chamada data e o mesmo queria quando a cada cadastro dos valores a data atual do sistema fosse no momento do cadastro fiz a formatação mas não sai no banco.
Date data = new Date(System.currentTimeMillis());
SimpleDateFormat formataData = new SimpleDateFormat("dd-mm-yyyy");
formataData.format(data);
statement.setDate(3,credcard.getData());
statement.executeUpdate();[/code]
[/quote]
Vc não está persistindo a variável “data”. compare
Date data = new Date(); // não precisa do System, o Date sabe fazer isso sozinho
statement.setDate(3,data); // não precisa formatar
statement.executeUpdate();[/code]
Date data = new Date(System.currentTimeMillis());
SimpleDateFormat formataData = new SimpleDateFormat("dd-mm-yyyy");
formataData.format(data); // retira essa linha
-- statement.setDate(3,credcard.getData()); // retire essa linha
++ statement.setDate(3,formataData.format(data)); // inclui essa linha
statement.executeUpdate();[/code][/quote]
Date data = new Date(System.currentTimeMillis());
SimpleDateFormat formataData = new SimpleDateFormat("dd-mm-yyyy");
formataData.format(data); // retira essa linha
-- statement.setDate(3,credcard.getData()); // retire essa linha
++ statement.setDate(3,formataData.format(data)); // inclui essa linha
statement.executeUpdate();[/code][/quote][/quote]
Como o sergiotaborda citou, é inútil formatar a data para fazer a persistência. O banco vai grava um dado do tipo DATE e não uma String.
Dentro do DATE constam todos os dados relacionados a data - dia, mês, ano, hora, minuto, segundo e milésimo.
Se esta sentindo falta de ver a hora quando faz um select no seu banco de dados é porque provavelmente a forma de exibição não esta contemplando o horário. Aí cada banco tem um comando especifico para ajustar a exibição, eu te mandei um exemplo no Oracle.
Caso a necessidade seja gerar um relatório direto do banco você ainda pode formatar a data usando o nosso amigo TO_CHAR.
Armazene a data no DB, e para exibir o horário utilize o SimpleDateFormat como já foi citado.
Date data = new Date(System.currentTimeMillis());
SimpleDateFormat formataData = new SimpleDateFormat("dd-mm-yyyy, HH:mm:ss");
-- statement.setDate(3,credcard.getData());
++ statement.setDate(3,formataData.format(data)); // inclui essa linha
statement.executeUpdate();
E desse geito está mostrando a data correta mas a hora mostra assim 00:00:00
[quote=freakazoid]Como o sergiotaborda citou, é inútil formatar a data para fazer a persistência. O banco vai grava um dado do tipo DATE e não uma String.
Dentro do DATE constam todos os dados relacionados a data - dia, mês, ano, hora, minuto, segundo e milésimo.
Se esta sentindo falta de ver a hora quando faz um select no seu banco de dados é porque provavelmente a forma de exibição não esta contemplando o horário. Aí cada banco tem um comando especifico para ajustar a exibição, eu te mandei um exemplo no Oracle.
Caso a necessidade seja gerar um relatório direto do banco você ainda pode formatar a data usando o nosso amigo TO_CHAR.
Armazene a data no DB, e para exibir o horário utilize o SimpleDateFormat como já foi citado.
Date data= new Date(System.currentTimeMillis());
System.out.println(data.toString()); //------> Desta forma a saída fica assim: Fri Mar 08 15:08:24 GMT-03:00 2013
statement.setDate(3,data);
Date data = new Date(); // não precisa do System, o Date sabe fazer isso sozinho
statement.setDate(3,data); // não precisa formatar
statement.executeUpdate();[/code]
[/quote][/quote]
Deu erro ao voce dar new Date() ??? Qual JDK/JRE voce usa ?