2014-12-05 116 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; 
}