Formatação de Datas

Pessoal preciso mais uma vez da ajuda de vcs, eu tentei fazer procurei por exemplos aqui no guj, mas não encontrei a solução e talvez ela seja bem simples…
É o seguinte possuo dois formatos de datas diferentes que são esses:

GMT-3 Thu Jul 23 2009
BRZ Mon Jul 13 2009

Preciso achar algum jeito de formatar essas duas datas no padrão dd/MM/yyyy, ou seja essas duas datas devem me retornar:
23/07/2009
13/07/2009.

Se alguem puder me ajudar desde já agradeço.

É muito simple, basta usar a classe SimpleDateFormat

SimpleDateFormat simpleDateFormat =
new SimpleDateFormat(“dd/MM/yyyy”);

Caso as suas dadas ja estejam em uma classe do tipo Calendar vc faz

System.out.println(simpleDateFormat.format(calendar.getTime()));

ou se estiver em uma Classe Date

System.out.println(simpleDateFormat.format(date));

lucianomendesprado, valeu… mas na verdade, não é bem isso… eu não expliquei direito…
Minhas datas eu extraio de um arquivo texto… são Strings, enfim segue um exemplo abaixo que não dá certo nem ferrando… se alguem puder me dizer onde estou errando agradeço mto.

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class TestesDatas {
	public static void main(String[] args) throws java.text.ParseException {
		String sData1 = "GMT-3 Thu Jul 23 2009";
		String sData2 = "BRZ Thu Jul 23 2009";

		
		DateFormat df = new SimpleDateFormat ("dd/MM/yyyy");   
		Date dt  = df.parse(sData1);  
		Date dt2 = df.parse(sData2);
		
		System.out.println(dt);
		System.out.println(dt2);
	}
		
		
}

Você vai ter de escrever um código que troque BRZ por BRT ou BRST, e GMT-3 por GMT-03:00.

import java.text.*;
import java.util.*;

class TesteTM {
    public static void main (String[] args) throws Exception {
        // Parse não aceita BRZ nem GMT-3; ele precisa que esteja no seguinte formato:
        // BRT (se for o horário de Brasília)
        // BRST (se for o horário de Brasilia, no horário de verão)
        // GMT-03:00 (ele precisa por extenso, não abreviado)
        String st1 = "BRT Mon Jul 13 2009";
        String st2 = "GMT-03:00 Thu Jul 23 2009";
         
        DateFormat df1 = new SimpleDateFormat ("z E MMM d yyyy", Locale.US);
        DateFormat df2 = new SimpleDateFormat ("dd/MM/yyyy HH:mm:ss");
        Date dt1 = df1.parse (st1);
        Date dt2 = df1.parse (st2);
        System.out.println (df2.format (dt1));
        System.out.println (df2.format (dt2));
    }
}

thingol,
O unico problema é que essa informação é gerada por um outro aplicativo… não gostaria de manipular a informação, de qualquer forma vou ver a melhor maneira de tratar, talvez faça algum esquema manual mesmo, onde pegue a data de traz para a frente “Jul 23 2009” aew trato essa informação…
Mais uma vez muito obrigado pelas respostas pessoal.

[quote=SemChance]thingol,
O unico problema é que essa informação é gerada por um outro aplicativo… não gostaria de manipular a informação, de qualquer forma vou ver a melhor maneira de tratar, talvez faça algum esquema manual mesmo, onde pegue a data de traz para a frente “Jul 23 2009” aew trato essa informação…
Mais uma vez muito obrigado pelas respostas pessoal.[/quote]

Mas isso é tranquilo. Basta dar 2 replaces em cada linha. Não tem jeito de usar diretamente BRZ, você tem de transformar BRZ em BRT.

E você quer reinventar a roda? É melhor dar uma “massageada” nos dados, isso é bem mais simples que você acha, só dar 2 replaces.
Você não precisa mudar o arquivo de entrada.