Galera, tenho um método que recebe uma string e transforma essa string em um objeto Date, com o padrão dd/MM/yyyy
Só que quando vejo o que está me retornando, retorna ela em um formato que não quero olhem o código:
try {
formatador = new SimpleDateFormat("dd/MM/yyyy");
java.util.Date date1 = formatador.parse(data);
System.out.println("passou aqui " + date);
return new java.sql.Date(formatador.parse(data).getTime());
eu envio String data = 10/07/2005 e me é retornado 2005-07-10 ??? :roll:
Abraços
De onde veio o objeto “data” e o objeto “date”?
[quote=“diogoacl”]Galera, tenho um método que recebe uma string e transforma essa string em um objeto Date, com o padrão dd/MM/yyyy
Só que quando vejo o que está me retornando, retorna ela em um formato que não quero olhem o código:
try {
formatador = new SimpleDateFormat("dd/MM/yyyy");
java.util.Date date1 = formatador.parse(data);
System.out.println("passou aqui " + date);
return new java.sql.Date(formatador.parse(data).getTime());
eu envio String data = 10/07/2005 e me é retornado 2005-07-10 ??? :roll:
Abraços[/quote]
Date não tem formato (é um long internamente)
o que acontece é q quando vc usa o método System.out.println(date.toString()) o java imprime a data no formato default, se vc quiser outro formato use System.out.println(formatador.format(date1))
ps.: o que é esse tal de SCPN
Mas no retorno ele não usa o objeto date.
E tb não usou date.toString()
Eu acho que tem objeto sobrando aí… mas não posso afirmar porque não vi o contexto da classe.
Então acho que não vai ter como.
pois este método TEM que me retornar um objeto do tipo DATE formatado em dd/MM/yyyy. Pois o mesmo será persistido no banco de dados. Então não pode ser String.
Como ele por default assume o valor long, creio que terei que fazer a conversão no banco de dados certo?
olha só a minha data está indo assim: 2005-07-28 só que para eu persistir (sem alterar a implmentação) tenho que envia-la 27/07/2005 como objeto, isso é possível?
senão for, terei que criar uma função no banco de dados… o que gerará transtorno e burocracia.
Humnm… que banco é seu ???
Pq não faz sentido vc soh poder inserir essa data no banco se ela for do tipo data… Oracle, Sql-Server, MySql que são bancos comuns no mercado, até o access, aceitaria sem problema algum algo do tipo
Insert Into TB_C_CLIENTE (DAT_REGISTER) VALUES (‘19/07/2005’) OU NO CASO ORACLE VALUES(TO_DATE(‘19/07/2005’)).
Eu fiz uma classe chamada DateTime que faz isso para mim, eu passo para ela a data, ela verifica o formato e me devolve sempre no formato DD/MM/YYYY mais se seu banco não aceita algo tipo “dd/mm/yyyy” não lhe serviria 
[quote=“diogoacl”]Então acho que não vai ter como.
pois este método TEM que me retornar um objeto do tipo DATE formatado em dd/MM/yyyy. Pois o mesmo será persistido no banco de dados. Então não pode ser String.
Como ele por default assume o valor long, creio que terei que fazer a conversão no banco de dados certo?
olha só a minha data está indo assim: 2005-07-28 só que para eu persistir (sem alterar a implmentação) tenho que envia-la 27/07/2005 como objeto, isso é possível?
senão for, terei que criar uma função no banco de dados… o que gerará transtorno e burocracia.[/quote]
[quote=“diogoacl”]Então acho que não vai ter como.
pois este método TEM que me retornar um objeto do tipo DATE formatado em dd/MM/yyyy. Pois o mesmo será persistido no banco de dados. Então não pode ser String. [/quote]
:idea: Date não possui formato, é somente uma representação (long) da data. Quem define o formato é a JVM ou o usuário quando converte de Date para String. got it?!
[quote=“diogoacl”]
Como ele por default assume o valor long, creio que terei que fazer a conversão no banco de dados certo?
olha só a minha data está indo assim: 2005-07-28 só que para eu persistir (sem alterar a implmentação) tenho que envia-la 27/07/2005 como objeto, isso é possível?
senão for, terei que criar uma função no banco de dados… o que gerará transtorno e burocracia.[/quote]
ai vai o exemplinho didático:
(considere o objeto con como sendo a conexao ao banco de dados)
String sql = "select * from tabela where data = ?";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setTimestamp(1, new Timestamp(new Date().getTime()));
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
// faça alguma coisa
}
rs.close();
pstmt.close();
se vc notar, na linha 3, vc está passando um timestamp pra o driver JDBC, este por sua vez fará o trabalho sujo e retornará os registros.
Simples não é?!