Java 从CSV读取字符串并解析到日期
我正在读取csv文件,并按如下方式存储字符串:Java 从CSV读取字符串并解析到日期,java,string,parsing,date,csv,Java,String,Parsing,Date,Csv,我正在读取csv文件,并按如下方式存储字符串: date=st.nextToken(); 日期的格式是2014-09-17T12:06:00.0000000 z,因此我定义: SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSX"); 当我尝试解析时 current_date=formatter.parse(date);
date=st.nextToken();
日期的格式是2014-09-17T12:06:00.0000000 z
,因此我定义:
SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSX");
当我尝试解析时
current_date=formatter.parse(date);
我得到一个例外:
java.text.ParseException: Unparseable date: "Date"
有什么想法吗?你可以试试这个
Date date = DatatypeFactory.newInstance().newXMLGregorianCalendar(str).toGregorianCalendar().getTime();
对我来说,以下工作:
public static void main(String[] args) throws ParseException {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSX");
System.out.println(formatter.parse("2014-09-17T12:06:00.0000000Z"));
}
所以我想问题在别处。您收到的数据不是您预期的数据,或者某个地方有输入错误
在解析日期之前,请尝试打印所有日期,以便了解实际解析的日期。由于出现异常
不可解析日期:“date”
,您确定没有在此处输入文本“date”,例如从.csv文件的标题行输入?(但请注意,毫秒字段中不能有7位数字)事实上,当您传递一个由您编写的字符串时,它会工作(我也尝试过…)。但是,当直接从CSV文件中读取它时,它不再工作了…@mbezunartea然后调试它。例如,在尝试解析日期之前,将这一行添加到代码中:System.out.println(“尝试解析日期“”+您的日期变量+”)
这样您就可以准确地看到您试图解析的字符串。不要错过这些单引号,它们有助于发现字符串是否包含空格(在您的特定情况下并不有害)或不可打印的字符。