Formatar datas

Oi !

Existe algum método pronto em java para formatar datas do formato aaa-mm-dd para o formato :
13 de Junho de 2005 - Segunda-feira

ou algo equivalente? que calcule o dia da semana e o mes do ano de acordo com ao data fornecida

obrigado

Dê uma olhada em java.text.SimpleDateFormat.

Bom, as bibliotecas em java para datas e horas são as seguintes:

  • java.util.Date;
  • java.util.Calendar;
  • java.util.GregorianCalendar;
  • java.util.TimeZone;
  • java.util.SimpleTimeZone;
  • java.text.DateFormat;
  • java.text.SimpleDateFormat;
  • java.text.DateFormatSymbols;
  • java.sql.Time;
  • java.sql.Date;
  • java.sql.TimeStamp;

Ufa! Dê uma lida em cada uma na API e veja qual a melhor se enquadra às suas necessidades. Até…

na verdade vou buscar a que possa transformar o mes do formato numérico para extenso em portugues e outra que mostre por extenso o dia da semana em portugues

obrigado a todos pelas informações.

tenho o metodo abaixo no ejb e os erros abaixo relatados

Como sDataEvento e do tipo string imagino que exista algum metodo qeu possa fazer cast do sDataEvento
para tipo date fazendo com que este metodo funcione . alguma idéia?
Obrigado

public String getsDataEventoFormatada()
{
//a data vem do banco com formato AAAA-DD-MM
java.util.Date sDataAux = sDataEvento;
SimpleDateFormat formatador1 = new SimpleDateFormat(“dd/MM/yyyy”);
java.util.Date data1 = null;
data1 = formatador1.parse(this.sDataEvento);
return data1;
}

“Agenda.java”: Error #: 354 : incompatible types;
found: java.lang.String,
required: java.util.Date at line : java.util.Date sDataAux = sDataEvento;

“Agenda.java”: Error #: 354 :
incompatible types;
found: java.util.Date,
required: java.lang.String at line: return data1;

[quote=“agrg”]tenho o metodo abaixo no ejb e os erros abaixo relatados

Como sDataEvento e do tipo string imagino que exista algum metodo qeu possa fazer cast do sDataEvento
para tipo date fazendo com que este metodo funcione . alguma idéia?
Obrigado

public String getsDataEventoFormatada()
{
//a data vem do banco com formato AAAA-DD-MM
java.util.Date sDataAux = sDataEvento;
SimpleDateFormat formatador1 = new SimpleDateFormat(“dd/MM/yyyy”);
java.util.Date data1 = null;
data1 = formatador1.parse(this.sDataEvento);
return data1;
}

“Agenda.java”: Error #: 354 : incompatible types;
found: java.lang.String,
required: java.util.Date at line : java.util.Date sDataAux = sDataEvento;

“Agenda.java”: Error #: 354 :
incompatible types;
found: java.util.Date,
required: java.lang.String at line: return data1;[/quote]

Irmão,

tenta fazer:

public String getsDataEventoFormatada() { String formatoData = "dd/MM/yy HH:mm"; // formato que você quer StringBuffer buf = new StringBuffer(); SimpleDateFormat formatador = new SimpleDateFormat(formatoData); formatador.setLenient(false); Date sDataAux = new Date(); // ou outra data passada como parâmetro formatador.format(sDataAux, buf, new FieldPosition(0)); return buf.toString(); }

Isso aí está no livro Jakarta Pitfalls. Para fazer o que você quer, dê uma olhada no api do SimpleDateFormat (http://java.sun.com/j2se/1.3/docs/api/java/text/SimpleDateFormat.html)

Paz!