2010-09-16 7 views
1

l'erreur se produit à proximité de l'analyse de proj_close_date. (Java.text.ParseException: date irréparable: "09/09/2010") Je lis la valeur projet_close_date de la base de données qui est au format chaîne. Je veux le convertir en format de date pour que, est présente proj_close_date entre from_date et to_dateErreur d'analyse dans le programme Java

public ArrayList viewAllCustProj1(String frm_date,String to_date,String cust,String proj) 
{ 
    ArrayList list= new ArrayList(); 
    try 
    { 
     String strCust=""; 
     String strproj="";  

     if(!cust.equalsIgnoreCase("ALL") && !cust.equals(null)) 
     { 
      strCust="and customer_code='"+cust+"'"; 
     } 
     if(!proj.equalsIgnoreCase("ALL") && !proj.equals(null)) 
     { 
      strproj="and project_code='"+proj+"'"; 
     }   
     if(cust.equalsIgnoreCase("ALL") && !proj.equalsIgnoreCase("ALL")) 
     { 

     } 
     else 
     { 
      stmt=conn.prepareStatement("select customer_code from mst_customer where visible=1 "+strCust+" and category='EU' and multiple_project=0"); 
      rs=stmt.executeQuery(); 
      while(rs.next()) 
      { 
       reportBean bean=new reportBean(); 
       bean.setCust_code(rs.getString("customer_code")); 
       bean.setProject_code(""); 
       list.add(bean); 
      } 
      rs.close(); 
      stmt.close(); 
     } 


     System.out.println(" select customer_code,project_code,proj_close_date,added_on from mst_project where visible=1 "+strCust+" "+strproj+""); 
     stmt=conn.prepareStatement("select customer_code,project_code,proj_close_date,added_on from mst_project where visible=1 "+strCust+" "+strproj+""); 
     rs=stmt.executeQuery(); 
     while(rs.next()) 
     { 
      reportBean bean=new reportBean(); 

      String proj_close_date=rs.getString(3); 
      String added_on=rs.getString(4); 

      DateFormat myDateFormat = new SimpleDateFormat("MM-dd-yyyy"); 

      DateFormat myDateFormat1= new SimpleDateFormat("yyyy-mm-dd hh:mm:ss"); 

      Date myDate1 = null; 
      Date myDate2 = null; 
      Date myDate3 = null; 
      Date myDate4 = null; 
      Date myDate5 = null; 
      try 
      { 
       if(proj_close_date==null || proj_close_date.trim().equals("") || proj_close_date=="NULL") 
       { 
        System.out.println("\n ****** In IF Loop "); 
        bean.setCust_code(rs.getString("customer_code")); 
        bean.setProject_code(rs.getString("project_code")); 
        list.add(bean); 
       } 
       else 
       { 
        System.out.println("\n ****** In Else Loop "); 
        myDate1 = myDateFormat.parse(proj_close_date); 
        myDate2 = myDateFormat.parse(frm_date); 
        myDate3 = myDateFormat.parse(to_date); 
        myDate5 = myDateFormat1.parse(added_on); 

        //myDate4 = myDateFormat.format(myDate5); 

        System.out.println("Project Code ---->"+rs.getString(2));            
        System.out.println("Proj_close_date ------>"+myDate1); 
        System.out.println("From Date ---->"+myDate2); 
        System.out.println("to Date ---->"+myDate3); 
        //System.out.println("Added_on --->"+myDate4); 
        System.out.println("Added_on 1 ie Date 5 ---->"+myDate5); 

        if(myDate1.after(myDate2) && myDate1.before(myDate3)) // means --> if(proj_close_date.after(frm_date) && proj_close_date.before(to_date)) 
        {       
         if(myDate1.after(myDate4)) // means --> if(proj_close_date.after(added_on)) 
         { 
          bean.setCust_code(rs.getString("customer_code")); 
          bean.setProject_code(rs.getString("project_code")); 
          list.add(bean); 
         }    
         else 
         { 
          bean.setCust_code(rs.getString("customer_code")); 
          bean.setProject_code(rs.getString("project_code")); 
          list.add(bean); 
         } 
        }//if  
       }//else 

      }//try 
      catch (ParseException e) 
      { 
       System.out.println("Invalid Date Parser Exception "); 
       e.printStackTrace(); 
      } 


     } 
     rs.close(); 
     stmt.close(); 

    } 
    catch(SQLException sex) 
    { 
     sex.printStackTrace(); 
    } 
    finally 
    { 
     closeConnection(); 
    } 
    return list; 
} 
+1

Hmm, cette question est presque exactement la même que http://stackoverflow.com/questions/3724313/date-parsing-from-one-format-to-another-format. Peut-être que vous pouvez faire vos devoirs ensemble ... – OliBlogger

Répondre

3

Modifier cette ligne

DateFormat myDateFormat = new SimpleDateFormat("MM-dd-yyyy"); 

à ceci:

DateFormat myDateFormat = new SimpleDateFormat("MM/dd/yyyy"); 

Cependant, il est tout à fait pas clair pourquoi vous obtenez toutes les valeurs en tant que chaînes, peut-être vous devriez envisager dédié ResultSet méthodes telles que getDate ou getTimeStamp. En guise d'autre remarque, je voudrais mentionner que la construction de requêtes SQL par concaténation doit être évitée. Vous devez générer des requêtes avec des espaces réservés ?, puis définir les paramètres sur votre PreparedStatement.

Questions connexes