无法从 DateChooserCombo 获取日期

问题描述

我正在尝试从 DateChooserCombo 获取日期,如下所示

SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-DD");
String date = sdf.format(dateChooser.getDate());

但是方法 getDate() 给了我错误(非法前向引用)。我也试过 getSelectedDate() 但它是一样的。我能做什么?

无论如何,我使用的是 Apache Netbeans 12.1,日期选择器应该是这个: https://github.com/vadimig/jdatechooser

谢谢。

解决方法

我从您在问题中提供的链接下载了 JDateChooser 代码。 getDate() 类中没有 datechooser.beans.DateChooserCombo 方法。有一个 getSelectedDate() 方法返回类 java.util.Calendar 的一个实例。

此外,根据 java.text.SimpleDateFormat 类的 documentation,模式 YYYY-MM-DD 是一个有效模式,但我认为这不是您想要的模式。 D 表示一年中的一天,这意味着二月 27th 是一年中的第 58th 天。你可能想要d。同样,Y 的意思是 Week year,而您可能想要 y

因此,为了获得用户从 DateChooserCombo 中选择的日期的字符串表示形式,您可能需要以下代码。

DateChooserCombo dcc = new DateChooserCombo(); // or however you create and configure it
Calendar cal = dcc.getSelectedDate();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String date = sdf.format(cal.getTime());

顺便说一下,JDateChooser 的开发似乎在七年前就停止了。或许可以考虑使用 JavaFX,它有一个 DatePicker 组件,可与 Java 的 date-time API 配合使用。