Java 如何使用csv文件中的日期和时间填充JTable?
这是我一直试图转换的链接Java 如何使用csv文件中的日期和时间填充JTable?,java,csv,datetimeformatter,datetimeparseexception,Java,Csv,Datetimeformatter,Datetimeparseexception,这是我一直试图转换的链接 2011-12-22,12:28:51,12:28:53 2012-10-22,12:28:57,12:28:59 2010-10-22,12:29:10,12:29:12 基本上,我想让我的JTable在这里显示我的csv文件的内容: package SimpleBook; import java.time.DateTimeException; import java.time.LocalDate; import java.time.LocalTime; impo
2011-12-22,12:28:51,12:28:53
2012-10-22,12:28:57,12:28:59
2010-10-22,12:29:10,12:29:12
基本上,我想让我的JTable在这里显示我的csv文件的内容:
package SimpleBook;
import java.time.DateTimeException;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.io.*;
public class SimpleBookList extends DateTimeException {
private ArrayList<SimpleBook> bookList;
public SimpleBookList() {
super("");
bookList = new ArrayList<SimpleBook>();
}
public void add(SimpleBook sb) {
bookList.add(sb);
}
public void readFromCSV(String filename) {
File file = new File(filename);
FileReader reader = null;
try {
reader = new FileReader(file);
}
catch (FileNotFoundException e) {
e.printStackTrace();
System.exit(1);
}
BufferedReader infile = new BufferedReader(reader);
String line = "";
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
try {
boolean done = false;
while (!done) {
line = infile.readLine();
if (line == null) {
done = true;
}
else {
String[] tokens = line.split(",");
LocalDate date = LocalDate.parse(tokens[0], dateFormatter);
LocalTime clockIn = LocalTime.parse(tokens[0], timeFormatter);
LocalTime clockOut = LocalTime.parse(tokens[0], timeFormatter);
SimpleBook sb = new SimpleBook(date,clockIn,clockOut);
bookList.add(sb);
}
}
}
catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
public Object[][] convert2Data() {
Object[][] data = new Object[bookList.size()][3];
for (int i = 0; i < bookList.size(); i++) {
data[i][0] = bookList.get(i).getDate();
data[i][1] = bookList.get(i).getClockIn();
data[i][2] = bookList.get(i).getClockOut();
}
return data;
}
}
错误消息:
java.time.format.DateTimeParseException: Text '2011-12-22' could not be parsed at index 2 at java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2052)
at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1954)
at java.base/java.time.LocalTime.parse(LocalTime.java:465)
at SimpleBook.SimpleBookList.readFromCSV(SimpleBookList.java:44)
at SimpleBook.BasicJTable.<init>(BasicJTable.java:25)
at SimpleBook.BasicJTable.main(BasicJTable.java:40)
哪种方式不起作用?它什么也没显示吗?您是否收到任何错误消息?java.time.format.DateTimeParseException:java.base/java.time.format.DateTimeFormatter.parseResolved0DateTimeFormatter.java:2052 at java.base/java.time.format.DateTimeFormatter.parseDateTimeFormatter.java:1954 atjava.base/java.time.LocalDate.parseLocalDate.java:430在SimpleBook.SimpleBookList.readFromCSVSimpleBookList.java:42在SimpleBook.BasicJTable.BasicJTable.java:25在SimpleBook.BasicJTable.mainBasicJTable.java:40提示:编辑时,不要使用右边的JavaScript/HTML/CSS片段按钮,在red1中除了..之外的任何内容。。JavaScript、HTML和CSS代码片段!这是一项特殊功能,允许用户单击按钮并实际查看呈现代码、标记和样式的效果。而是使用左侧的代码按钮,在it1上方有一个绿色复选标记。1它们是。这种错误消息会弹出,堆栈跟踪应该作为一个问题添加到问题中。当然,对代码和代码片段、结构化文档(如XML或输入/输出)使用代码格式。要执行此操作,请选择文本并单击邮件发布/编辑表单顶部的{}按钮。您需要令牌[1]用于打卡,令牌[2]用于打卡。