Me ajudem ... Problema com data (RESOLVIDO)

1 resposta
D

Estou com problema ao recuperar uma data:

O que acontece no meu arquivo esta gravado 28/06/2000, mas quando coloco esta informação na tela ela vem com a data 28/07/2000, sempre acrescentando mais um ao mês.
Esta informação esta gravada em um XML assim :

<dataInstalacao>
      <name>
        <namespaceURI>http://xxx.xxx.xxx</namespaceURI>
        <localPart>dataInstalacao</localPart>
        <prefix></prefix>
      </name>
      <declaredType>javax.xml.datatype.XMLGregorianCalendar</declaredType>
      <scope>xxx.xxx.xxx</scope>
      <value class="com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl">
        <year>2000</year>
        <month>6</month>
        <day>28</day>
        <timezone>-180</timezone>
        <hour>0</hour>
        <minute>0</minute>
        <second>0</second>
        <fractionalSecond>0.000</fractionalSecond>
      </value>
      <nil>false</nil>
    </dataInstalacao>

Meu código esta assim :

DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, new Locale("pt", "BR"));
   if ((empresa.getDataInstalacao() == null) ||
                (empresa.getDataInstalacao().getValue() == null)) {
            getPnlEmpresas().getPnlEmpresa().getTxtDataInstalacao().setText("");
        } else {
            XMLGregorianCalendar xtc = empresa.getDataInstalacao().getValue();
            GregorianCalendar calendar = new GregorianCalendar(xtc.getYear(), xtc.getMonth(), xtc.getDay());
getPnlEmpresas().getPnlEmpresa().getTxtDataInstalacao().setText(dateFormat.format(calendar.getTime()));
            
        }

Por favor me ajudem não estou conseguindo resolver.

1 Resposta

rael_gc

Simples: os meses começam internamente a serem contados em 0, e não em 1. Na hora em que você manda imprimir, ele exibirá Julho (ou 7 - depende do formatador que você está usando).

Culpe a idéia de fazerem Date compatível com C++.

Criado 20 de agosto de 2009
Ultima resposta 20 de ago. de 2009
Respostas 1
Participantes 2