Tarde ....

                 Estou tendo o seguinte problema qdo uso a classe
java.util.Date. Acesso o bd da Sybase e quero pegar o valor da coluna do
tipo DateTime. fa�o o seguinte :


                CallableStatement stmt_dt = con.prepareCall ( STR_SPC );

                 .....
                stmt_dt.registerOutParameter( 5, java.sql.Types.DATE
);cal.setTime( _data );
                 ......
                java.util.Date DT_EN = stmt_dt.getDate(5);
                .....
                System.err.println( DT_EN.toString() );


                Quando o ano deste campo � menor que 2000, ele retorna
os valores corretos. Agora, quando ele � mair ou igual a 2000, ele
retorna 3900 ( ?!?! ).

                A solu��o q encontrei foi fazer uma condi��o para
verificar o ano. Assim :

        ....
        ret += cal.get( Calendar.DATE );
        ret += "/" + (cal.get( Calendar.MONTH ) + 1 );

        int ANO = cal.get( Calendar.YEAR );

        if ( ANO > 3899 ) ANO = ANO - 1900;

        ret += "/" + ANO;

        return ret;
        ....


        Mas como trabalhamos com v�rias datas, teriamos q mudar v�rios
fontes. Outra solu��o seria "refazer" a classe Date, e utiliz�-la nos
fontes. Dei uma olhada no fonte desta classe,  e realmente ela
acrescenta 1900 ao ano que se passa como par�metro. Vejam :

            .....
            staticCal.set(year + 1900, month, date, hrs, min, sec);
            .....


                Pergunta : Haveria uma outra solu��o ??



* Para n�o receber mais e-mails desta lista envie um e-mail para 
[[EMAIL PROTECTED]]
e no corpo do email escreva [unsubscribe <seu-email>]
Veja as mensagens antigas em http://www.mail-archive.com/javabr%40cits.br/

Responder a