无法解释的日期:“yyyy-MM-dd”

时间:2015-12-30 16:38:31

标签: java mysql date

我正在尝试将我用jDateChooser选择的日期发送到MySQL数据库,但是它给了我以下错误:

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);
}

提前致谢!

3 个答案:

答案 0 :(得分: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);
}

现在正在运作。非常感谢!

答案 1 :(得分:0)

datePatAankomst.getDateFormatString()的打印值.datePatAankomst.getDateFormatString()的格式应与为sdf定义的格式匹配。

答案 2 :(得分:0)

这不是对你的问题的真实答案,而是从字面上理解你的第一句话,FYI ......

不要打扰解析

实际上,您不需要解析yyyy-MM-dd字符串来发送到数据库。

您应该通过java.sql.Date类将该值传递给数据库。静态valueOf方法默认采用该字符串格式。