我想把日期为'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;
}
答案 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);