![JDateChooser 存在问题,获取日期时出错](https://linux22.com/image/980611/JDateChooser%20%E5%AD%98%E5%9C%A8%E9%97%AE%E9%A2%98%EF%BC%8C%E8%8E%B7%E5%8F%96%E6%97%A5%E6%9C%9F%E6%97%B6%E5%87%BA%E9%94%99.png)
我正在使用 JDateChooser,但是我无法检索我输入的日期并且总是得到一个空对象。
dateChooser = new JDateChooser();
Date dateFromDateChooser = dateChooser.getDate();
String dateString = String.format("%1$td-%1$tm-%1$tY", dateFromDateChooser);
System.err.println("IHI date string " + dateString);
这就是我在控制台中获得的内容:
IHI date string null-null-null
答案1
该方法dateChooser.getDate()
返回null
。您刚刚实例化了对象dateChooser
,但从未分配过 Date 对象。
getDate()
这是该方法的实现JDateChooser.java
/**
* Returns the date. If the JDateChooser is started with a null date and no
* date was set by the user, null is returned.
*
* @return the current date
*/
public Date getDate() {
return dateEditor.getDate();
}
String.format
接下来,代码中的静态方法还接受null
第二个参数,例如:
String dateString = String.format("%1$td-%1$tm-%1$tY", null);
System.err.println("IHI date string " + dateString);
输出:
IHI date string null-null-null
根据您的代码,这是一个毫无意义但有效的例子。
public static void main(String[] args) {
JDateChooser dateChooser = new JDateChooser();
dateChooser.setDate(new Date());
Date dateFromDateChooser = dateChooser.getDate();
String dateString = String.format("%1$td-%1$tm-%1$tY", dateFromDateChooser);
System.err.println("IHI date string " + dateString);
}
输出:
IHI date string 06-05-2015
在读取 Date 实例之前,在 GUI 中设置一个 Date 实例,或者设置一个默认 Date 实例。