如何解决将 getText() 与 LocalDate Java
我正在用 Java 为待办事项列表制作 GUI,我想在文件中编写一个待办事项类型对象。待办事项对象具有名称、描述和确定要完成的日期。使用 GUI,用户可以添加任意数量的待办事项对象并将其写入文件。我无法使用 getText() 从 JTextField 获取用户的日期并在 LocalDate 类型对象中解析它以便写入文件。
我现在正在运行的代码:
//注册方式
public void RegularObligationRegister(RegularObligations R) throws IOException {
try {
objOutObligations.writeObject(R);
JOptionPane.showMessageDialog(null,"Save Success");
System.out.println(R);
objOutObligations.flush();
} catch (FileNotFoundException ex) {
System.out.println("Error with specified file . . .");
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
//actionperformed方法
@Override
public void actionPerformed(ActionEvent ae) {
.
.
.
if (ae.getSource().equals(REntryObligationSave)) {
RegularObligations R = new RegularObligations(RegularEntry_TextObligationName.getText(),RegularEntry_TextObligationDescription.getText(),LocalDate.parse(RegularEntry_TextObligationDeadline.getText()));
try {
this.RegularObligationRegister(R);
} catch (IOException ex) {
Logger.getLogger(GUI.class.getName()).log(Level.SEVERE,null,ex);
}
RegularEntry_TextObligationName.setText(null);
RegularEntry_TextObligationDescription.setText(null);
RegularEntry_TextObligationDeadline.setText(null);
}
解决方法
您需要确保您的文本必须是有效的 LocalDate.parse() 方法才能解析。您需要为 LocalDate 指定文本格式。例如:(dd MMM uuuu)。然后你应该将你的文本和格式化程序作为参数传递给 LocalDate.parse() 方法。下面的示例将帮助您解析类似于以下内容的字符串:“31 Dec 2018” as a LocalDate
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMM uuuu");
LocalDate.parse(RegularEntry_TextObligationDeadline.getText(),formatter));
您可以检查 DateTimeFormatter 将日期类型自定义为文本 DateTimeFormatter
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。