Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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 如何将csv日期格式从yyyy/mm/ddd转换为yyyymmdd_Java_Arrays_Csv - Fatal编程技术网

Java 如何将csv日期格式从yyyy/mm/ddd转换为yyyymmdd

Java 如何将csv日期格式从yyyy/mm/ddd转换为yyyymmdd,java,arrays,csv,Java,Arrays,Csv,我正在尝试导入日期为以下格式的csv: 2018/01/25 mysql中的日期格式是Int格式,我想删除当前日期格式中的斜杠。 我需要让日期看起来像这样: 20180125 我只需要在第一列工作,而不是csv的其余部分。 下面是读取csv的代码 while(reader.readLine()!= null) { String read = reader.readLine();//bufferedreader string variable String [] rawRow

我正在尝试导入日期为以下格式的csv:
2018/01/25
mysql中的日期格式是Int格式,我想删除当前日期格式中的斜杠。 我需要让日期看起来像这样:

20180125
我只需要在第一列工作,而不是csv的其余部分。 下面是读取csv的代码

while(reader.readLine()!= null)
{

    String read = reader.readLine();//bufferedreader string variable
    String [] rawRow = read.split(",");
    String lastEntry = rawRow[rawRow.length-1];// this contains MemberNo/branchNo
    String [] properLastEntry = lastEntry.split("/");//this contains MemberNo,BranchNo
    //memory that contains rawRow nd properLastEntry in a single array
    String [] oneRow = new String[rawRow.length+1];
    System.arraycopy(rawRow, 0, oneRow, 0,rawRow.length-1);
    System.arraycopy(properLastEntry, 0, oneRow, oneRow.length - properLastEntry.length,properLastEntry.length);
    System.out.println(Arrays.toString(oneRow));

    rs2.add(oneRow);    
}
此代码snip的输出为:

2018/01/25 converted to -> 20180125
只需将
日期字符串
传递给方法
convertDate(字符串日期)


快乐编码:)

为什么它不来自
java.sql.Date
对象中的数据库

如果你把它当作一个字符串来读,就这样做:

String convert(String dateIn) {
    String year = dateIn.subString(0,4);
    String month = dateIn.subString(5,7);
    String day = dateIn.subString(8);
    return year + month + day;
}

当然,从数据库中以字符串形式读取日期仍然是一个非常糟糕的主意,因为格式不能保证在每台服务器上都相同。可能是测试服务器上的一个,生产服务器上的另一个。

您必须非常确定该CSV中不允许使用引号或转义逗号,否则
split
调用将提供错误的数据。感谢您提供此代码片段,它可能会提供一些有限的短期帮助。通过说明为什么这是一个很好的问题解决方案来正确解释它的长期价值,并将使它对未来有其他类似问题的读者更有用。请在您的回答中添加一些解释,包括您所做的假设。
String convert(String dateIn) {
    String year = dateIn.subString(0,4);
    String month = dateIn.subString(5,7);
    String day = dateIn.subString(8);
    return year + month + day;
}