2013-07-15 215 views
1

我有一個String,其中包含格式爲MM-dd-yy的日期字符串,例如12-28-18。我希望將此參數傳遞給Oracle數據庫中的存儲過程。將字符串轉換爲SQL日期

因此,我試圖將此字符串轉換爲java.sql.Date。以下是我要轉換的方法:

DateFormat df = new SimpleDateFormat("MM-dd-yy"); 
java.util.Date date1 = df.parse(valueobject.getDate()); 
java.sql.Date date2 = new java.sql.Date(date1.getTime()) 

但是,它會導致ParseException。 無法弄清楚它在解析過程中失敗的原因。 任何幫助,這將是偉大的!

+3

'新的SimpleDateFormat( 「MM-DD-YY」,Locale.English);'? – johnchen902

+0

http://stackoverflow.com/questions/2980583/how-to-convert-string-to-java-sql-date-and-java-sql-time – Kon

+0

@ johnchen902添加區域設置不起作用! – shabeena

回答

0

試試這個

DateFormat df = new SimpleDateFormat("EEE MM-dd-yy hh:mm:ss"); 
    Date d=new Date(); 
    String date1 = df.format(d); 
    java.sql.Date date2 = new java.sql.Date(d.getTime()); 
    System.out.println(date1); 
    System.out.println(df.format(date2)); 

或者

DateFormat df = new SimpleDateFormat("MM-dd-yy"); 
    Date d=new Date(); 
    String date1 = df.format(d); 
    java.sql.Date date2 = new java.sql.Date(d.getTime()); 
    System.out.println(date1); 
    System.out.println(df.format(date2)); 
0

這項工作對我來說,也許你valueobject.getDate()不返回一個字符串。請檢查!!

SimpleDateFormat format = new SimpleDateFormat("MM-dd-yyyy"); 
    Date parsed = format.parse("07-15-2013"); 
    java.sql.Date sql = new java.sql.Date(parsed.getTime()); 

與您的代碼類似,工作得很好!

4

使用valueOf()

String date = "2000-11-01"; // YYYY-MM-DD 
java.sql.Date sqlDate = java.sql.Date.valueOf(date);