Pessoal estou fazendo uma consulta no banco e esta consulta me retorna uma data no formato: “Sep 2 2011”. Bem como poço fazer para converter esta data para 02/09/2011, pois tenho que apresentar em um JSP. No caso o tratamente da data estou fazendo no proprio servlet.
Não sei se é o mais apropriado (ou POG) dos jeitos mas …
Sua String não tem uma virgula depois do dia (não sei se é o correto nem como vc obtem ela) mas se vc colocar ficando assim
"Sep 2, 2011"
isso aqui funciona :
[code]
String strData = “Sep 2, 2011”;
//formatador p/ obter a data a partir da String
DateFormat fmt = DateFormat.getDateInstance(DateFormat.MEDIUM,Locale.ENGLISH);
//formatador p/ nosso padrão de data
DateFormat fmt2 = DateFormat.getDateInstance();
Se o sistema te retorna um objeto DATE ai tu tem q usar o metodo “format” do SimpleDateFormat. Parse só se teu sistema retorna uma string.
Se for o 2º caso, retorna uma string, ai tem q usar o parse para transformar em um objeto DATE, mas tua mascara tem q ser igual a essa string q tu quer transformar em DATE.
Só q não entendo uma coisa. Se teu sistema retorna uma string em vez de um date, quem está salvando essa string em formato errado deveria fazer a mascara correta, creio eu.
Verifica isso ai, mas se tu está pegando esse campo da tabela, acho q lá deve estar configurado como DATE, ai tu temq usar o format com a mascara “dd/MM/yyyy”.
Cara recebo como String. Agora esta consulta foi feita pela DBA. Ele falou que para o caso esta era a forma que ele podia fazer para o banco usado(SQLServer). Eu solicitei que fizem com a mascara dd/MM/yyyy, mas ele falou que nao e possivel. Vai saber ne.
Mas valeu mesmo assim pela ajuda… estou tentando aqui mas não deu pe ate agora.
Não é possível? Mas q raio de DBA é essa? ehehehhe
Basta usar TO_CHAR no select q está sendo feito.
Exemplo:
SELECT TO_CHAR(COLUNA_DATA, 'DD/MM/YYYY') FROM TABELA;
Bom, tem como fazer e não querem facilitar a tua vida, pelo jeito.
O q posso sugerir é q tu faça um parse dessa string usando o formato da mascara de acordo com a data q veio.
Para saber a melhor maneira de montar a mascara para o parse, eu sugiro q tu pesquise a API do SimpleDateFormat (http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html).
Com isso o parse vai retornar um date q tu vai poder fazer o formato que quiser, tb usando uma mascara especifica e o metodo format.
Mas fala com esse teu “DBA” e sugere ele a usar o TO_CHAR na coluna de data na hora do SELECT.
Rs… obrigado pelas dicas do Parse. Qto ao TO_CHAR, não sou nenhum DBA, mas falei isto para ele, mas o cara realmente não ta é querendo mexer. Não vou discultir vou resolver aqui e pronto, passo para o gerente o que tive que fazer e como seria melhor fazer e ele se entendi com este cara.