Preciso Ajuda Data GregorianCalendar

[color=darkred][/color]Bom dia Pessoal … Preciso converter data para gregorian , até ai tudo bem fiz desta forma abaixo:

public XMLGregorianCalendar sqlDateXML(String wData){
   try {
       GregorianCalendar xData = new GregorianCalendar();
       DateFormat gData = new SimpleDateFormat("yyyy-MM-dd");
       try{
           Date zData = gData.parse(wData);
           xData.setTime(zData);	
       }catch (ParseException v){
         throw new Error(v);
       }			
       return DatatypeFactory.newInstance().newXMLGregorianCalendar(xData);
  } catch (DatatypeConfigurationException e) {
    throw new Error(e);
  }
}

Ele me retorna a data desta forma [color=red]2008-09-15T00:00:00.000-03:00 [/color]porém eu preciso da data gregorian mas somente a data sem a hora, alguém saberia me dizer como usar para retornar somente o [color=green]2008-09-15[/color].

Inclua o codigo na tag code, por favor.

[code]public XMLGregorianCalendar sqlDateXML(String wData) {
try {
GregorianCalendar xData = new GregorianCalendar();
DateFormat gData = new SimpleDateFormat(“yyyy-MM-dd”);
try {
Date zData = gData.parse(wData);
xData.setTime(zData);
} catch (ParseException v) {
throw new Error(v);
}
return DatatypeFactory.newInstance().newXMLGregorianCalendar(xData);
} catch (DatatypeConfigurationException e) {
throw new Error(e);
}
}

http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/datatype/XMLGregorianCalendar.html

Vendo a documentação, você tem duas alternativas:

  • Você pode simplesmente fazer um “substring” do resultado - é mais fácil
  • Você pode montar a data com os métodos getDay, getMonth, getYear. Uma coisa que facilita é que getMonth retorna um número de 1 a 12, não de 0 a 11 como o GregorianCalendar.