Avaliem o método

To fazendo um método que pega uma String no formato DD/MM/AAAA, converte e retorna do tipo
AAAA/MM/DD, pra inserir no banco de dados…
o que vcs acham?.
da pra ficar mais enchuto as linhas? rs

public void setBancoparaview(String bancoparaview)// Entrada: DD-MM-AAAA { bancoparaview = bancoparaview.replace("-", "") ; bancoparaview = bancoparaview.replace("/", "") ; bancoparaview = bancoparaview.replace(".", "") ; bancoparaview = bancoparaview.replace(" ", "") ; String dia="",mes="",ano="", retorno =""; ano=bancoparaview.substring(0,4); mes=bancoparaview.substring(4,6); dia=bancoparaview.substring(6,8); retorno = ano+" / "+mes+" / "+dia; this.bancoparaview = retorno; }

http://java.sun.com/javase/6/docs/api/java/text/SimpleDateFormat.html

Use o tipo String para texto.

Para outros tipos de dados, use o tipo apropriado. No caso de datas, o tipo Calendar.

Só correginduh ‘-’
o metodo que eu postei, é responsavel pela formatação da data, pra view…
o que eu gostaria que fosse analisado na verdade era esse aqui rs.
é o que eu vou pegar mascarado na view, e inserir no banco a data…

public void setViewparabanco(String viewparabanco) // Entrada: DD-MM-AAAA { viewparabanco = viewparabanco.replace("-", ""); viewparabanco = viewparabanco.replace("/", ""); viewparabanco = viewparabanco.replace(".", ""); viewparabanco = viewparabanco.replace(" ", ""); String dia="",mes="",ano="", retorno =""; dia = viewparabanco.substring(0,2); mes = viewparabanco.substring(2,4); ano = viewparabanco.substring(4,8); retorno = ano+mes+dia; this.viewparabanco = retorno; }

Analisando esse método, continuo afirmando que ele está errado. Por que está recebendo um string e enviando para o banco uma string.
O banco é capaz de trabalhar com o tipo de data, então, use o tipo de data.

Isso permite até que você troque o tipo do banco, sem ter que alterar a string de formatação do SQL do banco.

Se diz, mudar o método pra do tipo Date…
pra nao precisar converter o retorno quando for chama-lo?

Sim. O único lugar que o Date vira um String é na view. E é na view também que esse String volta a ser um date, antes de ser repassado para as camadas inferiores (alguns mais ortodoxos podem alegar que é no controller que a string passa a ser um date. O importante é, ele será um date antes mesmo de cair para o seu model).

Entendi…
valeu ^^

[quote=wilsontads]To fazendo um método que pega uma String no formato DD/MM/AAAA, converte e retorna do tipo
AAAA/MM/DD, pra inserir no banco de dados…
o que vcs acham?.
da pra ficar mais enchuto as linhas? rs
[/quote]
Bem, se você está dizendo que o parâmetro de entrada é no formato DD/MM/AAAA, pq está fazendo replace em mais de um separador ("-", “.”, " ")?

Para deixar “mais enxuto” o código em si, poderia fazer:

        //Como replace retorna Stirng, concatenaria as chamadas
        bancoparaview = bancoparaview.replace("-", "") .replace("/", "") .replace(".", "") .replace(" ", "") ;

Mas preferiria utilizar Split
Obtendo um array de String.
Outra possibilidade seria fazer os substrings considerando os separadores

   	String dia = dataStr.substring(0, 2);
    	String mes = dataStr.substring(3, 5);
    	String ano = dataStr.substring(6);

Aliás, parece-me que seus substrings tão pegando dados invertidos p/ dia, mes e ano, baseando-se na entrada que você disse que receberia…

[quote=wilsontads]… ano=bancoparaview.substring(0,4); mes=bancoparaview.substring(4,6); dia=bancoparaview.substring(6,8); …[/quote]

E, por fim, converta tudo para data (como já foi dito).

Mantenho a resposta que postei acima…

Se preferir, converta para GregorianCalendar e use SimpleDateFormat para formatar usando a máscara desejada (“yyyyMMdd”).

Apenas lembrando que, ao fornecer o mês ao Calendar, subtrair 1.
Janeiro = 0
Fevereiro = 1
Março = 2

Dezembro = 11

Exemplo:

String dataStr = "11/11/2010"; String[] str = dataStr.split("/"); Calendar c = new GregorianCalendar(Integer.parseInt(str[2]), Integer.parseInt(str[1])-1, Integer.parseInt(str[0])); String retorno = new SimpleDateFormat("yyyyMMdd").format(c.getTime()); System.out.println(retorno);
Ou

String dataStr = "11/11/2010"; String dia = dataStr.substring(0, 2); String mes = dataStr.substring(3, 5); String ano = dataStr.substring(6); String retorno = ano + mes + dia; // ou dataStr.substring(6) + dataStr.substring(3, 5) + dataStr.substring(0, 2) desconsiderando as atribuições acima. System.out.println(retorno);

Estou baseando-me na premissa que você mesmo pôs: DD/MM/AAAA