Ola pessoal, estou com um probleminha. Tenho um campo date no meu banco, porém existem campos nulos neste atributo. O que eu estou encontrando problema é justamente neste campo null. Preciso mostrar no lugar do nulo um outro valor, p.ex “01/01/1901”. Fiz desta forma:
//fiz uma condição para poder pegar os campos
if(!B1.POR1.getString("LineStatus").equalsIgnoreCase("O")){
//coloquei em uma variavel os valores
data_entr = B1.POR1.getDate("ActDelDate");
}else{
// se o campo for nullo
if(data_entr == null){
usei um formatador de data
SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd");
df1.format(data_entr) ;
// Aqui dah erro!!! Diz que não posso colocar esse valor em um campo DATE.
data_entr = "01/01/1901";
}
}
[code]Calendar c = Calendar.getInstance();
c.set(1901, 01, 01);
data_entr = c.getTime();[/code]
Obrigado pela dica, vlw mesmo.
O método format não muda a String desse modo.
Voce pode fazer isso
//fiz uma condição para poder pegar os campos
if(!B1.POR1.getString("LineStatus").equalsIgnoreCase("O")){
//coloquei em uma variavel os valores
data_entr = B1.POR1.getDate("ActDelDate");
}else{
// se o campo for nullo
if(data_entr == null){
SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd");
data_entr = df1.format("1901-01-01") ;//Note que coloquei desse modo por que voce específicou "yyyy-MM-dd" se voce quiser usar "01/01/1901" voce precisa usar a String "dd/MM/yyyy" no construtor do SimpleDateFormatter
}
}
Então se eu colocar desta maneira, dah erro, pq a variavel data_entr é do tipo DATE, mesmo usando esse formatador o Java continua dando erro.
SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd");
data_entr = df1.format("1901-01-01") ;
Então… deu certo, porém fiquei com uma dúvida.
Pq aoa invés de gravar 1901-01-01 esta gravando 1901-02-01, esta pulando um mês. Como se resolve isso?
Alias… o método parse que transforma uma String em date. o format transforma a Date em String.