Java 如何使用JOption从对象类在应用程序中输入公历
对象类Java 如何使用JOption从对象类在应用程序中输入公历,java,calendar,Java,Calendar,对象类 public Association(String assoName, String Abbrv, GregorianCalendar formDate, Student president) { this.assoName = assoName; this.abbrv = abbrv; this.formDate = formDate; this.president = president; } 应用程序
public Association(String assoName, String Abbrv, GregorianCalendar formDate, Student president)
{
this.assoName = assoName;
this.abbrv = abbrv;
this.formDate = formDate;
this.president = president;
}
应用程序类
String assoName = JOptionPane.showInputDialog("Association Name: ");
pw.println(assoName);
String abbrv = JOptionPane.showInputDialog("Association's Abbreviation");
pw.print(","+abbrv);
GregorianCalendar formDate = JOptionPane.showInputDialog("Association Formation Date (dd/mm/yyyy) ");
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy");
你能帮我做这个节目吗
我不能改变任何事情,因为这是我的项目,而且已经由我的教授设定好了
如何从GregorianCalendar更改为LocalDate和DateTimeFormatter
如果可以,请在关联类中将GregoriaCalendar formDate更改为LocalDate formDate
在任何情况下,用于从用户读取生成日期的one arg JOptionPane.showInputDialog都会返回一个字符串,因此我建议您将其读入字符串变量,例如formationDateString,然后将其解析为LocalDate。比如:
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("d/M/u");
String formationDateString = JOptionPane.showInputDialog("Association Formation Date (dd/mm/yyyy) ");
try {
LocalDate formDate = LocalDate.parse(formationDateString, dateFormatter);
} catch (DateTimeParseException dtpe) {
JOptionPane.showMessageDialog(null, "Invalid date format",
"id frn’s app", JOptionPane.ERROR_MESSAGE);
}
如果无法更改关联构造函数,请在解析后将LocalDate转换为GregorianCalendar,如下所示:
ZonedDateTime startOfDay = formDate.atStartOfDay(ZoneId.systemDefault());
GregorianCalendar formDateGregCal = GregorianCalendar.from(startOfDay);
如果你的意思是你的教授坚持使用设计糟糕、过时很久的GregorianCalendar,更不用说臭名昭著的SimpleDateFormat了,你可能想看看使用现代的、更好的替代品是否合适,尽管如此,请在这里引用我的话。GregorianCalendar类存在设计问题,现在已经过时很久了。使用现代的LocalDate和DateTimeFormatter,您将更容易获得所需的结果,因此请您自己改用它们,因为应用程序类代码由于错误而无法编译。如果你不能改变任何东西,这是否意味着你不能修复这些错误?@OleV.V。如何从GregorianCalendar更改为LocalDate和DateTimeFormatter?