2015-12-30 46 views
-2

我想送我挑取jDateChooser到MySQL數據庫的日期,但它給我下面的錯誤:無法解析的日期:「YYYY-MM-DD」

Dec 30, 2015 5:23:29 PM werkstukcp3.swing.WerkstukGUI btnPatCreateActionPerformed 
SEVERE: null 
    java.text.ParseException: Unparseable date: "yyyy-MM-dd" 

我一直在找圍繞着StackOverflow來解決這個問題,但是我嘗試的一切都給了我另一個錯誤。

我有下面的代碼爲我的按鈕:提前

private void btnPatCreateActionPerformed(java.awt.event.ActionEvent evt) {            
    // TODO add your handling code here: 
    int patientId = 12; 
    String voornaam = txtPatVoornaam.getText(); 
    String achternaam = txtPatAchternaam.getText(); 
    int kamer = Integer.parseInt(txtPatKamer.getText()); 
    String departement = txtPatDep.getText(); 
    String campus = txtPatCampus.getText(); 

    DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH); 
    sdf.setTimeZone(TimeZone.getTimeZone("GMT+1")); 

    Date parse1 = null; 
    try { 
     parse1 = sdf.parse(datePatAankomst.getDateFormatString()); 
    } catch (ParseException ex) { 
     Logger.getLogger(WerkstukGUI.class.getName()).log(Level.SEVERE, null, ex); 
    } 
    java.sql.Date aankomstdatum = new java.sql.Date(parse1.getTime()); 

    Date parse2 = null; 
    try { 
     parse2 = sdf.parse(datePatVertrek.getDateFormatString()); 
    } catch (ParseException ex) { 
     Logger.getLogger(WerkstukGUI.class.getName()).log(Level.SEVERE, null, ex); 
    } 
    java.sql.Date vertrekdatum = new java.sql.Date(parse2.getTime()); 

    Patient nieuwePatient = new Patient(patientId, voornaam, achternaam, kamer, departement, campus, aankomstdatum, vertrekdatum); 
    PatientDAO.voegPatientToe(nieuwePatient); 
} 

謝謝!

+1

打印出來'datePatAankomst.getDateFormatString()'和'datePatVertrek.getDateFormatString()',似乎其中一個是'null' –

+7

似乎你解析日期格式,而不是實際的日期字符串本身... – Reimeus

+0

根據上面的Reimeus,'sdf.parse(datePatAankomst.getDateFormatString());'爲什麼要解析dateFormatString而不是日期字符串? – Taylor

回答

1

正如Reimus指出的那樣,我是在解析日期格式,而不是實際的日期。

private void btnPatCreateActionPerformed(java.awt.event.ActionEvent evt) {            
    // TODO add your handling code here: 
    int patientId = 12; 
    String voornaam = txtPatVoornaam.getText(); 
    String achternaam = txtPatAchternaam.getText(); 
    int kamer = Integer.parseInt(txtPatKamer.getText()); 
    String departement = txtPatDep.getText(); 
    String campus = txtPatCampus.getText(); 
    Date aankomstdatum = datePatAankomst.getDate(); 
    Date vertrekdatum = datePatVertrek.getDate(); 

    Patient nieuwePatient = new Patient(patientId, voornaam, achternaam, kamer, departement, campus, aankomstdatum, vertrekdatum); 
    PatientDAO.voegPatientToe(nieuwePatient); 
} 

這是正在工作。非常感謝!

0

打印datePatAankomst.getDateFormatString()的值。datePatAankomst.getDateFormatString()的格式應該與爲sdf定義的格式匹配。

0

這是不是一個真正的回答你的問題,而是把你的第一句從字面上看,僅供參考......

不要打擾解析

其實,你並不需要解析yyyy-MM-dd字符串發送到一個數據庫。

您應該通過java.sql.Date類將該值傳遞到數據庫。靜態valueOf方法默認採用該字符串格式。