SimpleDateFormat -?

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 :frowning:

[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 é?!