我在我的应用程序中使 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
,但该方法在我的应用程序类中似乎不可用。
我需要扩展我的应用程序类吗?
我是否调用了错误的方法来获取信息?
它们都在默认包中 [不好?] 这会导致问题吗?
最佳答案
http://www.codejava.net/java-se/swing/how-to-use-jdatepicker-to-display-calendar-component
这可能是一个可以提供帮助的资源
我相信你可能需要打电话
datePicker.getJFormattedTextField().getText()
关于java - JDatePicker 日期格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31277001/