我有一个 JLabel 的日期写为字符串,我想将它转换为 sql.Date,但是当我尝试转换它时,它运行异常。日期值是从带有 RMI 的服务器传递过来的。
有人知道可能是什么问题吗?
这是 RMI 代码:
PrenotazioniVaccini infoPrenotazione = null;
try {
infoPrenotazione = stub.getPrenotazioneVaccinazione(tf_Cf.getText());
} catch (RemoteException ex) {
ex.printStackTrace();
}
label_DataVaccino.setText(infoPrenotazione.getData());
这是标签代码:
label_DataVaccino = new JLabel("");
label_DataVaccino.setBounds(0, 320, 400, 25);
label_DataVaccino.setHorizontalAlignment(JLabel.CENTER);
label_DataVaccino.setVerticalAlignment(JLabel.CENTER);
panel_AddVaccinatoGUI.add(label_DataVaccino);
这是异常运行的地方:
private void registraVaccinato() {
String data = label_DataVaccino.getText();
Date dataVaccino = Date.valueOf(data);
System.out.println(dataVaccino);
}
这是错误:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException
at java.sql/java.sql.Date.valueOf(Date.java:141)
at centrivaccinali.AddVaccinatoGUI.registraVaccinato(AddVaccinatoGUI.java:294)
at centrivaccinali.AddVaccinatoGUI$3.actionPerformed(AddVaccinatoGUI.java:282)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
...
我使用本指南将字符串转换为 sql.Date:https://www.javatpoint.com/java-sql-date
答案 0 :(得分:2)
IllegalArgumentException 是当参数非法或不正确时。
数据字符串的语法需要采用以下格式:yyyy-mm-dd。还有更多限制,例如 mm < 1 和 mm > 12。