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.
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() ) );
}
}
Muito obrigado… Resolveu meu problema