public Calendar formatDate(String date){
// Pegando a data
//Quebrando a data para buscar ano , mes e ano
String [] aData = date.split("/");
// Setando no objeto Calendar o mes , dia e ano
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH , Integer.parseInt(aData[0]));
cal.set(Calendar.MONTH , Integer.parseInt(aData[1]));
cal.set(Calendar.YEAR , Integer.parseInt(aData[2]));
return cal;
}
Quando faço:
String data = “22/12/2006”;
System.out.println(this.formatDate(data).MONTH);
Como disse o David na classe Calendar os meses vão de 0 a 11.
Ou seja 0 é Janeiro, etc.
Por exemplo, se você fizer um:
System.out.println(new GregorianCalendar());
aqui imprime:
MONTH=10
O método toString da classe Calendar imprime os valores dos campos internos da classe. Ele imprime aquele 12 que você setou, mas o valor correto para Dezembro seria 11.
Dia = Integer.parseInt(FTFDataNascimento.getText().substring(0,2));
Mes = Integer.parseInt(FTFDataNascimento.getText().substring(3,5));
Ano = Integer.parseInt(FTFDataNascimento.getText().substring(6,10));
GregorianCalendar MontaData = new GregorianCalendar(Ano,Mes-1,Dia);
Date xDataNascimento = new Date( MontaData.getTimeInMillis());