Java - Conversão de Data

Olá pessoal,
Atualmente tenho uma data em java no formato: Recife, quinta-feira, 20 de abril de 2017
Gostaria de converter esta data que está em string para: 2017-04-20.

Haveria como fazer isto?

Obrigado.

De onde está tirando essa data?
Não tem como converter no local que está pegando?

O código abaixo recebe sua data, recorta a String a partir da última vírgula, visto que a cidade e o dia da semana são dispensáveis, cria um SimpleDateFormat que aceita um dia do mês (d), o nome do mês (MMM) e um ano (y), intercalados com a substring ‘de’ e usa esse formato para fazer o parse da string recortada. É setado o locale para pt-BR para aceitar o nome do mês em português do Brasil. O resultado do parse é um objeto do tipo Date, que por sua vez é usado como parâmetro para outro SimpleDateFormat, que agora é usado para formatar a data para o formato que você quer, no caso, ano-mês-dia (yyyy-MM-dd).

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Locale;

/**
 *
 * @author David
 */
public class Foo {

    /**
     * @param args the command line arguments
     */
    public static void main( String[] args ) throws ParseException {
        System.out.println( converter( "Recife, quinta-feira, 20 de abril de 2017" ) );
    }
    
    public static String converter( String data ) throws ParseException {
        return new SimpleDateFormat( "yyyy-MM-dd" ).format( new SimpleDateFormat( "d 'de' MMM 'de' y", new Locale( "pt", "BR" ) ).parse( data.substring( data.lastIndexOf( "," ) + 1 ).trim() ) );
    }
    
}
2 curtidas

Muito obrigado… Resolveu meu problema :smiley: