JDateChooser 存在问题,获取日期时出错

JDateChooser 存在问题,获取日期时出错

我正在使用 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 实例。

相关内容