2013-10-23 125 views
4

我util的日期一樣2013-10-23, 2013-10-23, 2013-10-23, 2013-10-23, 2013-10-23, 2013-10-23, 2013-10-23, 2013-10-23, 2013-10-23Java的最新概念

我要存儲日期到MySQL數據庫表列日

正在使用這些代碼

String datevalue=request.getParameter("date"); 

這DATEVALUE是打印這樣2013-10-23, 2013-10-23, 2013-10-23, 2013-10-23, 2013-10-23, 2013-10-23, 2013-10-23, 2013-10-23, 2013-10-23

String[] datetokens=datevalue.split(","); 
java.sql.Date dt = java.sql.Date.valueOf(new String(datevalue)); 

在插入時我得到這些錯誤

java.lang.IllegalArgumentException異常

給我suggetion HOWTO解決這個問題並存儲在數據庫

回答

0

您應該使用STR_TO_DATE功能。

INSERT INTO MY_TABLE VALUE (STR_TO_DATE('5/15/2012 8:06:26 AM', '%c/%e/%Y %r')) 
1

您想要使用的日期格式對象來解析的日期,如SimpleDateFormat

String dateValuesString = request.getParameter("date"); 
String[] dateValueStrings = dateValuesString.split(","); 
SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd"); 
for (String dateString : dateValueStrings) { 
    Date date = sdf.parse(dateString); 
} 
0

我居然會用JODA做你需要的東西: 在INSERT像這樣的時候儘量類型轉換那裏;不過,SimpleDateFormat或JODA將會訣竅。

0

java.lang.IllegalArgumentException是由於datetokens格式錯誤導致的。由於split(",",它得到blank space)。使用trim()方法

for(String token: datetokens){ 
java.sql.Date dt = java.sql.Date.valueOf(new String(token.trim())); 
} 
+0

在這裏,通過datevalue不datetokens –

+0

@kittureddy你是對的。你應該在datetokens上使用trim()。看到我編輯的答案。 – Masudul

0

嘗試這樣還有: -

String dateValuesString = request.getParameter("date"); 
String[] dateValueStrings = dateValuesString.split(","); 
SimpleDateFormat myFormat = new SimpleDateFormat("yy-MM-dd"); 
for (String dateString : dateValueStrings) { 
String reformattedStr = myFormat.format(dateString); 
System.out.println(reformattedStr); 
} 
0

在這種情況下:

  • 你通過一個逗號(,)分隔日期值的列表。
    String datevalue=request.getParameter("date");

  • 將所有日期拆分爲一個保存每個日期值的字符串數組。
    String[] datetokens = datevalue.split(",");
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", dateValue);
    ...指定要解析的日期格式。

  • 現在您需要迭代(for循環)來訪問數組中的每個字符串。
    for(String dateValue : datetokens){
    Date date = sdf.parse(dateValue.trim());
    java.sql.Date sqlDate = new java.sql.Date(date.getTime());
    //此處插入sqlDate值到MySQL對每個迭代。
    }

  • 請不要忘記在插入時管理數據庫連接並提供正確的查詢。

  • 另外,處理ParseException即。或者使用try/catch或者throws。

1

以下代碼將打印每個日期。

String datevalue = "2013-10-23, 2013-10-23, 2013-10-23, 2013-10-23, 2013-10-23, 2013-10-23, 2013-10-23, 2013-10-23, 2013-10-23"; 
     String[] datetokens = datevalue.split(", "); 
     for (String each : datetokens) { 
      java.sql.Date dt = java.sql.Date.valueOf(each); 
      System.out.println(dt); 
     } 

您可以將dt插入數據庫。在split方法(如split(", "))中逗號(,)後必須有一個空格。

+1

非常感謝你對我非常有用 –