Java日期概念

时间:2013-10-23 06:56:05

标签: java mysql database

我的工具日期类似于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异常

给我建议如何解决这个问题并存储在数据库中

7 个答案:

答案 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。