将字符串解析为java.sql.date

时间:2014-12-05 21:22:39

标签: java parsing date

我希望你能帮助我。 我的意见是22-01-1993

我的代码是

public String CreateCalendar (String titel, String startDate, String endDate, String note, String location, String email) throws SQLException, ParseException
{
    String stringToBeReturned ="";
    testConnection();

    SimpleDateFormat format = new SimpleDateFormat ("EEE MMM dd HH:mm:s zzz YYYY");

    java.util.Date utilStartDate = format.parse(startDate);
    java.util.Date utilEndDate = format.parse(startDate);
    java.sql.Date sqlStartDate = new java.sql.Date(utilStartDate.getTime());
    java.sql.Date sqlEndDate = new java.sql.Date(utilEndDate.getTime());


    String [] keys = {"title","start","end", "note", "location", "active", "email"};
    String [] values = {titel, format.parse(startDate).toString(), format.parse(endDate).toString(), note, location, "1", email};
    qb.insertInto("calendar", keys).values(values).Execute();

    return stringToBeReturned;
}

然而我得到错误java.text.ParseException:Unparseable date:“22-01-1993” 我做错了什么

2 个答案:

答案 0 :(得分:0)

format.parse(startDate).toString()format.parse(endDate)将为您解决问题。


添加到第二个问题。

22-01-1993这就是您提供数据的方式。

Fri Jan 22 00:00:00 CET 1993这就是它所期望的。

所以让我们改变("dd-MM-yyyy")来实际匹配它。

("EEE MMM dd HH:mm:s zzz YYYY");

这应该可以解决问题。


在PHP中,它与Java不一样,我更新了data (...)以匹配它。信息取自

http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html


SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:s zzz YYYY");

String startDate = new Date().toString();

输出

Fri Dec 05 23:15:39 CET 2014

这样有效。

我现在看到它的方式你不需要以下几行

java.util.Date utilStartDate = format.parse(startDate);
java.util.Date utilEndDate = format.parse(startDate);
java.sql.Date sqlStartDate = new java.sql.Date(utilStartDate.getTime());
java.sql.Date sqlEndDate = new java.sql.Date(utilEndDate.getTime());

当您拥有以下输入22-01-1993时出现的问题是它与您预期的输入不匹配。您可以从中提取月,日和年,然后使用其余数据构建新字符串。然而,这感觉多余。

答案 1 :(得分:0)

让它工作,就像这样

public String CreateCalendar (String titel, String startDate, String endDate, String note, String location, String email) throws SQLException, ParseException
{
    String stringToBeReturned ="";
    testConnection();

    SimpleDateFormat format = new SimpleDateFormat ("yyyy-MM-dd");
    format.parse(startDate);
    format.parse(endDate);


    String [] keys = {"title", "start", "end", "note", "location", "active", "email"};
    String [] values = {titel, startDate, endDate, note, location, "1", email};
    qb.insertInto("calendar", keys).values(values).Execute();

    return stringToBeReturned;
}
相关问题