如何格式化日期从mysql到jtextfield

时间:2017-07-06 22:20:48

标签: java mysql parsing format

我想把日期为'07 -07-2017'从mysql db到jtextfield。

错误:

  

无法将给定对象格式化为日期。

我该怎么办?

以下是我的代码。

 public void fisGetir(int fisNo) throws NumberFormatException, ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException{

        String tarih ;
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        Date simdikiZaman = df.parse(ariza.getTarih());
        tarih = new SimpleDateFormat("dd-MM-yyyy").format(simdikiZaman); 


        ariza = db.arizaBilgiGetir(fisNo);
        fisNoTextField.setText(String.valueOf(fisNo));
        tarihTextField.setText(ariza.getTarih());
        personelTextField.setText(ariza.getPersonel());
        islemTarihiTextField.setText(ariza.getIslemTarih());
        islemSaatTextField.setText(ariza.getIslemSaat());
    }

     public ArizaBakimListeTableSatirModel arizaBilgiGetir(int fisNo) throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException
        {
             if(con == null) con = ConnectionManager.getConnection();
                con.setAutoCommit(true);       

             Statement stmt = con.createStatement();
             String yol ="SELECT fisno, tarih, personel, id, islemTarih, islemSaat FROM ariza WHERE fisno= '" + fisNo +"' " ;
             System.out.println(yol);
             ResultSet rs = stmt.executeQuery(yol);
             ArizaBakimListeTableSatirModel ariza = new ArizaBakimListeTableSatirModel();

             while (rs.next()) {
                 ariza.setFisNo(rs.getInt("fisno"));
                 ariza.setTarih(rs.getString("tarih"));
                 ariza.setPersonel(rs.getString("personel"));
                 ariza.setIslemTarihi(rs.getString("islemTarih"));
                 ariza.setIslemSaat(rs.getString("islemSaat"));
                 ariza.setId(rs.getInt("id"));
                 ariza.setKayitDurum(true);  //kayıt durumu var mı kontrol
             }
             return ariza;
        }

2 个答案:

答案 0 :(得分:0)

解决方案:

public void fisGetir(int fisNo) throws NumberFormatException, ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException, ParseException{
        ariza = db.arizaBilgiGetir(fisNo);

        String tarih, islemTarih ;
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        Date simdikiZaman = df.parse(ariza.getTarih());
        tarih = new SimpleDateFormat("dd-MM-yyyy").format(simdikiZaman); 

        Date simdikiZaman2 = df.parse(ariza.getIslemTarih());
        islemTarih = new SimpleDateFormat("dd-MM-yyyy").format(simdikiZaman2); 

        fisNoTextField.setText(String.valueOf(fisNo));
        tarihTextField.setText(tarih);
        personelTextField.setText(ariza.getPersonel());
        islemTarihiTextField.setText(islemTarih);
        islemSaatTextField.setText(ariza.getIslemSaat());
    }

答案 1 :(得分:-1)

在将ariza.getTarih()设置为ariza之前,您已使用ariza = db.arizaBilgiGetir(fisNo);,以便您尝试解析的对象的值可以为null或者您在构造函数中具有init的值,导致错误无法解析'

Date simdikiZaman = df.parse(ariza.getTarih());
tarih = new SimpleDateFormat("dd-MM-yyyy").format(simdikiZaman);       
ariza = db.arizaBilgiGetir(fisNo);

在使用ariza = db.arizaBilgiGetir(fisNo);

之前,请将行ariza更改为提前
ariza = db.arizaBilgiGetir(fisNo);
Date simdikiZaman = df.parse(ariza.getTarih());
tarih = new SimpleDateFormat("dd-MM-yyyy").format(simdikiZaman);