我正在使用JTable
创建一个 Swing 应用程序,您可以在其中一列中输入日期和时间。我正在使用JDateChooser
和JComboBox
下拉菜单,这意味着我必须以相当笨拙的方式转换为字符串:
Object[] row = new Object[2];
String Name = jTextField1.getText();
Object Hour = jComboBox1.getSelectedItem();
Object Minute = jComboBox2.getSelectedItem();
String Time1 = Hour.toString();
String Time2 = Minute.toString();
SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm");
String theTime = (Time1+ ":"+ Time2);
String theDate = dateFormat.format(jDateChooser1.getDate());
String together = (theDate + " " +theTime);
row[0] = Name;
row[1] = together;
model.addRow(row);
问题是,如果我输入"21.02.2019 20:00",输出将是"21.02.2019 00:25 20:00",00:25是我的系统时间。我有一个单独的功能可以读取用户的时间,但即使我禁用它,问题仍然存在。我认为系统时间无法在这里输出,因此任何人的想法将不胜感激。
问题出在以下行上:
SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm");
这一行意味着从JDateChooser接收的值是以dd.MM.yyyy HH:mm的格式接收的,我没有意识到。为了解决这个问题,我只是从上面的代码中删除了"HH:mm"。