JDatePicker 日期格式化

JDatePicker date formatting

我在我的应用程序中使 JDatePicker 正常工作,但希望将日期格式化为 YYYY_MM_DD
目前日期的格式是默认的 Wed Jul 08 15:17:01 ADT 2015
从这个 guide 有一个 class 格式的日期如下。

package net.codejava.swing;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

import javax.swing.JFormattedTextField.AbstractFormatter;

public class DateLabelFormatter extends AbstractFormatter {

    private String datePattern = "yyyy-MM-dd";
    private SimpleDateFormat dateFormatter = new SimpleDateFormat(datePattern);

    @Override
    public Object stringToValue(String text) throws ParseException {
        return dateFormatter.parseObject(text);
    }

    @Override
    public String valueToString(Object value) throws ParseException {
        if (value != null) {
            Calendar cal = (Calendar) value;
            return dateFormatter.format(cal.getTime());
        }

        return "";
    }

}

所以我将 class 添加到我的包中,并且 Swing 应用程序具有正确的构造函数

JDatePickerImpl datePicker = new JDatePickerImpl(datePanel, new DateLabelFormatter());

所以每次我调用 datePicker.getModel().getValue().toString() 格式都是原始格式。
现在我看到 DateLabelFormatter 调用 valueToString,但该方法在我的应用程序中似乎不可用 class。
我需要延长我的申请 class 吗?
我是不是调用了错误的方法来获取信息?
它们都在默认包中 [不好?] 这会导致问题吗?

你得打电话

datePicker.getJFormattedTextField().getText()

获取datePicker显示的值

http://www.codejava.net/java-se/swing/how-to-use-jdatepicker-to-display-calendar-component

这里可能有可以提供帮助的资源

我相信你可能需要打电话给

datePicker.getJFormattedTextField().getText()