Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java日期概念_Java_Mysql_Database - Fatal编程技术网

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);
              }