Olá pessoal,
estou tentando fazer uma classe utilitária que receba uma string que representa uma data, o locale de origem da data e o locale de destino para a conversão da data. Este método deve retornar uma string também.
Tentei fazer com o código abaixo(vejam pelos comentários que tentei outras variações) mas ele me retorna uma data sem noção quando executa a conversão.
Este método deve ser capaz de transformar qq data de qq idioma para uma data válida em qq outro idioma.
Se alguém puder dar um help, por favor.
Segue a classe
/*
- Created on 21/01/2005
*/
package shit;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
/**
*
-
@author Administrador
*/
public class Shit {public static String converterDataParaLocale(String data, Locale origem,
Locale destino) throws ParseException {/*Calendar c1 = GregorianCalendar.getInstance(origem); Calendar c2 = GregorianCalendar.getInstance(destino); DateFormat dfo = SimpleDateFormat.getInstance(); dfo.setCalendar(c1); DateFormat dfd = SimpleDateFormat.getInstance(); dfd.setCalendar(c2); GregorianCalendar.getInstance(). c1 */ System.out.println("Utility respondendo"); DateFormat fdo = SimpleDateFormat.getDateInstance( DateFormat.SHORT, origem); DateFormat fdd = SimpleDateFormat.getDateInstance( DateFormat.SHORT, destino); Date dataOrigem = null; Date dataDestino = null; System.out.println("Utility Antes do try 1"); try { System.out.println("A data origem é null? "+data); dataOrigem = new Date(fdo.parse(data).getTime()); //dataOrigem = dfo.parse(data); } catch (ParseException pe) { System.out.println("Utility Erro de parse 1"); throw new ParseException("Parse error at position " + pe.getErrorOffset(), pe.getErrorOffset()); } catch (Exception e) { System.out.println("Utility crash"); e.printStackTrace(); } System.out.println("Utility Antes do try 2"); try { //dataDestino = new Date(fdd.parse(data).getTime()); dataDestino = fdd.parse(data); //dataDestino = dfd.parse(data); } catch (ParseException pe) { System.out.println("Utility Erro de parse 2"); pe.printStackTrace(); throw new ParseException("Parse error at position " + pe.getErrorOffset(), pe.getErrorOffset()); } System.out.println("Utility retornando " + fdd.format(dataDestino)); //System.out.println("Utility retornando " + dfd.format(dataDestino)); return fdd.format(dataDestino); //return dfd.format(dataDestino);
}
public static void main (String[] args) throws Exception {
String shit = converterDataParaLocale(“17/08/2003”,
new Locale(“pt”,“BR”),
new Locale(“en”,“US”));
System.out.println(shit);
}
}