Formatar String como Data

Bom Dia Pessoal :smiley:

Estou importando dados de um arquivo texto e lá existe um campo data que no seguinte formato;
DDMMYYYY
26072007

e eu gostaria de formatar esta String como Data com barras, tipo:
DD/MM/YYYY
26/07/2007

O SimpleDateFormat não resolve porque não estou trabalhando com tipo data e sim STRING
valeu galera!

Tente escrever um método que retorna
dd + / + mm + / + yyyy
usando o método substring da classe String.

Então coloque as barras:

String d1 = "01082007"; String d2 = d1.substring(0, 2) + "/" + d1.substring(2, 4) + "/" + d1.substring(4, 8);

T+

Ou usando SimpleDateFormat, que vc disse que não serviria hehehe:

SimpleDateFormat formato1 = new SimpleDateFormat("ddMMyyyy");
SimpleDateFormat formato2 = new SimpleDateFormat("dd/MM/yyyy");
String data = "26072007"; //26072007 para 26/07/2007
System.out.println(formato2.format(formato1.parse(data)));
1 curtida

Rafael Valeu mesmo…

imaginei que o SimpleDate não convertesse!
quebro um galhão

Estamos aqui para ajudar.

Seja bem-vindo ao GUJ. :wink:

Mas uma coisa, tentei fazer o mesmo com o DecimalFormat tipo:
0000123
1,23

usando o mesmo principio da Data,
mas não deu certo.

Não dá certo porque o mecanismo não é o mesmo.
Já deste uma olhada no Javadoc? Ou no tutorial oficial? O jeito vai ser trabalhar com os String.subString().

Confie na documentação, ela é sua amiga, ela nunca te nega informação.

Até!

Além de ensinar como fazer, também gostamos de ensinar como aprender sozinho, então vou dar a dica (um tanto trivial).

Veja na API Java:
http://java.sun.com/j2se/1.5.0/docs/api/

Procure por DecimalFormat, verá que lá explica de maneira simples, na teoria e na prática (com exemplos), como fazer tudo que é possível com tal classe.

Boa sorte nos estudos. :wink:

[quote=brunohenrique]Mas uma coisa, tentei fazer o mesmo com o DecimalFormat tipo:
0000123
1,23

usando o mesmo principio da Data,
mas não deu certo.[/quote]

[code]
//Onde valor é um Comparable
Locale locale = new Locale(“pt”,“BR”);
Formatter formatter = new Formatter(locale);

            //Dá um System.out aqui pra ver
    	formatter.format("%,.2f", (Float) valor).toString();
            //Dá um System.out aqui pra ver		
            formatter.format("%,.0f", (Float) valor).toString();

[/code]

Testa que fiz aqui no Guj! mas deve funcionar