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/