问题描述
我正在尝试从 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 配合使用。