Java日期概念
我有类似于Java日期概念,java,mysql,database,Java,Mysql,Database,我有类似于2013-10-232013-10-232013-10-232013-10-232013-10-232013-10-232013-10-232013-10-232013-10-232013-10-232013-10-23 我想将该日期存储到mysql数据库表列date中 我正在使用这些代码 String datevalue=request.getParameter("date"); 此日期值是这样打印的2013-10-232013-10-232013-10-232013-10-232
2013-10-232013-10-232013-10-232013-10-232013-10-232013-10-232013-10-232013-10-232013-10-232013-10-232013-10-23
我想将该日期存储到mysql数据库表列date中
我正在使用这些代码
String datevalue=request.getParameter("date");
此日期值是这样打印的2013-10-232013-10-232013-10-232013-10-232013-10-232013-10-232013-10-232013-10-232013-10-232013-10-232013-10-23
String[] datetokens=datevalue.split(",");
java.sql.Date dt = java.sql.Date.valueOf(new String(datevalue));
在插入时间内,我得到了这些错误
java.lang.IllegalArgumentException
给我建议如何解决这个问题并存储在数据库中您应该使用
STR\u TO\u DATE
函数。
尝试在插入时进行类型转换,如下所示:
INSERT INTO MY_TABLE VALUE (STR_TO_DATE('5/15/2012 8:06:26 AM', '%c/%e/%Y %r'))
您希望使用日期格式对象来解析日期,例如
我会在那里做你需要的事情;但是,SimpleDataFormat或JODA会起作用。
java.lang.IllegalArgumentException
是由于日期标记的格式错误造成的。由于拆分(“,”
),它得到了空格。使用trim()
方法
for(String token: datetokens){
java.sql.Date dt = java.sql.Date.valueOf(new String(token.trim()));
}
也可以这样尝试:-
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);
}
在这种情况下:
- 您传递了一个逗号(,)分隔的日期值列表。
String datevalue=request.getParameter(“日期”)代码>
- 将所有日期拆分为包含每个日期值的字符串数组。
String[]datetokens=datevalue.split(“,”)代码>
SimpleDataFormat sdf=新的SimpleDataFormat(“YY-MM-dd”,日期值)代码>
…指定要分析的日期格式
- 现在需要迭代(for循环)来访问数组中的每个字符串。
for(字符串dateValue:datetokens){
Date-Date=sdf.parse(dateValue.trim());
java.sql.Date sqlDate=new java.sql.Date(Date.getTime());
//这里为每次迭代将sqlDate
值插入MySQL中。
}
- 请不要忘记管理数据库连接,并在插入时提供适当的查询
- 另外,处理
ParseException
ie。使用try/catch或throws
以下代码将打印每个日期
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(“,”
)中的逗号(,)后必须有空格。此处我传递的是日期值,而不是datetokens@kittureddy你说得对。您应该在datetokens中使用trim()。请看我编辑的答案。非常感谢,这对我很有用
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);
}