Olá estou tentando converter uma String para Calendar…pesquisei aqui como faze-lo, mas cheguei a um ponto de onde não sei como resolver:
 datas =  conecta.resultset.getString("dt_emprestimo");// timestamp
      int tamanho = datas.length();
      datas = datas.substring(0, tamanho-11);
      datas = datas.replace('-', '/');
      transforma=converteCalendar(datas);// transforma é um tipo Calendar
a variável cal retorna nula desse método:
public  Calendar converteCalendar(String ddMMaaaa) throws ParseException {
        DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
         Date dt = df.parse (ddMMaaaa);
         Calendar cal = Calendar.getInstance();
         cal.setTime (dt);
         return cal;
    }
Como ela é nula ao passa-la como referência da null pointer…
Muito Obrigado
         
        
          
        
           
           
           
         
         
            
            
          
       
      
        
        
          O que está retornando dessa linha abaixo?
datas =  conecta.resultset.getString("dt_emprestimo");// timestamp 
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Por que não usa getDate() no lugar de getString()?
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          “2009-11-10 15:56:49.0” - retorna essa data do meu banco que esta como TIMESTAMP…depois retirei as Strings, ta indo certinho pro método, o problema é na hora da conversão…
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Por favor dê uma olhada novamente, limpe os teus .classe e compile novamente.
Calendar.getInstance() nunca retorna null. Se retornasse, cal.setTime daria um NullPointeException, e o método não retornaria.
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Bruno, ele para antes dessa outra chamada
diferenca = d.verificaData(transforma);
método da classe Diferenca
public int verificaData(Calendar dataEmp) {
        dataDesejada.set(2009, 12, 12); // atribui a data
        int dia = calendario.get(Calendar.DAY_OF_MONTH);
        int mes = calendario.get(Calendar.MONTH);
        int ano = calendario.get(Calendar.YEAR);
        mes++;
        dataAtual.set(ano, mes, dia);
      
        Integer atraso = 0;
       
        while (dataEmp.before(dataAtual)){ 
            atraso++;
            dataAtual.add(Calendar.DAY_OF_WEEK, 1);
        }
obrigado
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Dá um clean no projeto.
Não é para dar erro.
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Ainda acho que é melhor usar o getDate. Você pode pegar dados do tipo TimeStamp com ele. Depois, fica fácil definir a data para um Calendar, diretamente.
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          ViniGodoy como usar o getDate para pegar TimeStamp?
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          [quote=Graciano]isso não vai dar um loop infinito?
  while (dataEmp.before(dataAtual)){   
             atraso++;  
             dataAtual.add(Calendar.DAY_OF_WEEK, 1);  
         }  [/quote]
Acho que ele quis dizer:
  while (dataAtual.after(dataEmp)){   
             atraso++;  
             dataAtual.add(Calendar.DAY_OF_WEEK, -1);  
         }  [/quote]
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Timestamp é só um nome que o banco de dados costuma a dar para um tipo de tempo. O driver do seu DB deve ser capaz de lidar com essa diferença, e obter o objeto correto usando o getDate.
Que banco você está usando?
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Tente fazer diretamente:
Date datas =  conecta.resultset.getDate("dt_emprestimo");
Calendar cal = Calendar.getInstance();
cal.setTime(datas);
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Mysql…
então é só criar uma variável do tipo Date:
Date teste
teste=  conecta.resultset.getDate(“dt_emprestimo”);
?
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Sim, deveria ser só isso sim. Não tem pq ler um tipo que representa datas do banco como string, para depois converte-lo para data novamente.
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          esta como date, mas mesmo assim preciso converte-la para Calendar…
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Tudo depende.
Se você quer fazer operações em cima da data, é melhor usar Calendar.
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Sim, e eu já mostrei como fazer isso:
Calendar cal = Calendar.getInstance();
cal.setTime(dataQueVeioDoBancoDeDadosNoFormatoDate);
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Date teste=new Date();
teste= conecta.resultset.getDate("dt_emprestimo");
        
 Calendar cal=Calendar.getInstance();
  cal.setTime (teste);
  d.verificaData(teste);//Quando vou passar a referência da incompatibilidade pois teste continua Date  :cry: 
uffffffff
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          É pq vc tem que passar cal. A variável teste não vai se metamorfosear. rs
Date teste=new Date();
[code]teste= conecta.resultset.getDate(“dt_emprestimo”);
Calendar cal=Calendar.getInstance();
cal.setTime (teste);
d.verificaData(cal);[/code]