JDatePicker日期格式

时间:2015-07-07 18:52:07

标签: java swing swingx

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

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 "";
    }

}

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

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

因此,每次拨打datePicker.getModel().getValue().toString()时,格式都是原始格式 现在我看到DateLabelFormatter调用valueToString,但该方法在我的应用程序类中似乎不可用。
我是否需要扩展我的应用程序类? 我是否采用了错误的方法来获取信息? 他们都是默认包[不好?]是造成问题的? 完成菜鸟所以任何帮助表示赞赏:)

2 个答案:

答案 0 :(得分:6)

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

这可能是一个可以提供帮助的资源

我相信您可能需要致电

AsyncTask

答案 1 :(得分:4)

你必须致电

{{1}}

从datePicker

获取显示的值