2015-12-30 115 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方法默认采用该字符串格式。