我的工具日期类似于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
我想将这些日期存储到mysql数据库表列日期
我正在使用这些代码
String datevalue=request.getParameter("date");
此日期值的打印方式如下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异常
给我建议如何解决这个问题并存储在数据库中
答案 0 :(得分: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);
}
答案 1 :(得分: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(", ")
)。
答案 2 :(得分:0)
您应该使用STR_TO_DATE
功能。
在INSERT时尝试typeCasting,如下所示:
INSERT INTO MY_TABLE VALUE (STR_TO_DATE('5/15/2012 8:06:26 AM', '%c/%e/%Y %r'))
答案 3 :(得分:0)
我实际上会使用JODA来做你需要的事情;但是,SimpleDateFormat或JODA可以解决问题。
答案 4 :(得分:0)
java.lang.IllegalArgumentException
归因于datetokens
格式错误。由于blank space
,它得到split(","
。使用trim()
方法
for(String token: datetokens){
java.sql.Date dt = java.sql.Date.valueOf(new String(token.trim()));
}
答案 5 :(得分: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);
}
答案 6 :(得分: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。