2014-12-05 118 views
0

我希望你能帮助我。 我的输入是22-01-1993解析字符串到java.sql.date

我的代码是

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:无法解析的日期:“22-01-1993” 我在做什么错

+1

您可以添加堆栈跟踪,什么输入/输出它正试图解析是什么? – mkobit 2014-12-05 21:32:14

+0

@ditleev您应该提出一个新问题或编辑您的旧问题,而不是发布答案。 – Emz 2014-12-05 21:45:11

+0

@ditleev我编辑了我的答案来解释第二个错误。我希望我做对了,如果没有,写评论,我会解决它。 – Emz 2014-12-05 21:50:26

回答

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的是,它不符合你预期有什么的问题的方式。您可以从中提取月份,日期和年份,然后使用其余数据构建一个新字符串。但是,这感觉是多余的。

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