Data por extenso [RESOLVIDO]

Como se faz para transformar um date em uma string que contenha a data por extenso…

Presciso que a string retornada esteja da seguinte forma

Ex: 24/05/2012 -> aos vinte e quatro dias do mês de maio do ano de dois mil e doze

primeiramente fiz o seguinte método …mas ele me retorna 24 de maio de 2012 e presciso de tudo por extenso…até os números

/** * Retorna a data passada como parametro por extenso * @param data * @return */ public String getDataPorExtenso(Date data){ DateFormat dfmt = new SimpleDateFormat("d 'de' MMMM 'de' yyyy"); return dfmt.format(data); }

Não conheço nada pronto, mas você pode combinar com algo daqui:

isso aqui pode te ajudar considerando data como números concatenados…

http://www.devmedia.com.br/valor-por-extenso-em-uma-aplicacao-java/21897

amigo através do código abaixo já consegui isolar o dia e ano em strings de números, o problema agora é transformá-as em texto:

[code] DateFormat dfmt = new SimpleDateFormat( “'aos ‘d’ dias do mês de ‘MMMM’ de 'yyyy”);
Date hoje = Calendar.getInstance(Locale.getDefault()).getTime();

       String a= dfmt.format(hoje);
    String dia="";
    String ano="";
   
    for (int b=4; b<=a.length(); b++){//começa no 4 pra já livrar o aos (com espaço)
        if((a.substring(b+1,b+2).equals(" "))){
            dia = a.substring(b, b+1); //dia com um dígito
        }else{
            dia= a.substring(b, b+2); //dia com dois digitos
        }
        break;
    }
    
    ano = a.substring(a.length()-4,a.length());

[/code]

Obrigado pelas soluções e sujestões…consegui resolver…
Juntando as idéias passadas por vocês…fiz da seguinte maneira…

um método para pegar o mes por extenso


   public String getMesPorExtenso(Date data){  
        DateFormat dfmt = new SimpleDateFormat(MMMM);  
        return dfmt.format(data);  
   }  

também criei métodos para pegar o dia e data por números assim

 
    public int getDia(Date data){
        int retorno = 0;

          GregorianCalendar cal = (GregorianCalendar) GregorianCalendar.getInstance();
          cal.setTime(data);

         retorno =  cal.get(GregorianCalendar.DAY_OF_MONTH);
         cal.clear();
         cal = null;
         return retorno;



    }

Para pegar o mes faz a mesma coisa só mundando o parametro DAY_OF_MONTH para MONTH

depois para passar esses numeros por extenso usei a classe me passada nos links acima pelo SandroSoftwares e ErickRAR que na verdade são a mesma coisa…a mesma classe, porém modifiquei e coloquei uma flag nela para informar o uso ou não uso de moeda… ou seja para retornar uma string com “reais” e “centavos” ou retornar somente o número por extenso… e por fim depois é só unir as palavras e criar a frase… esses métodos servirão para várias outras etapas do sistema… assim ficou uma coisa útil e reaproveitável…

Obrigado a todos…