我创建了以下扩展JSpinner
的类来迭代dd / mm / yyy值。
public class DateSpinner extends JSpinner{
Calendar calendar = new GregorianCalendar();
public DateSpinner(){
super();
calendar.add(Calendar.DAY_OF_YEAR, 1);
Date now = calendar.getTime();
calendar.add(Calendar.DAY_OF_YEAR, -2);
Date startDate = calendar.getTime();
calendar.add(Calendar.YEAR, 100);
Date endDate = calendar.getTime();
SpinnerDateModel dateModel = new SpinnerDateModel
( now , startDate , endDate , Calendar.DAY_OF_MONTH );
setModel(dateModel);
JFormattedTextField tf =
((JSpinner.DefaultEditor)getEditor()).getTextField();
DefaultFormatterFactory factory =
(DefaultFormatterFactory)tf.getFormatterFactory();
DateFormatter formatter = (DateFormatter)factory.getDefaultFormatter();
// Change the date format to only show the hours
formatter.setFormat(new SimpleDateFormat("dd/MM/yyyy"));
}
}
我的问题是我使用
设置其值 Date today = new Date();
spinner.setValue(today);
我得到的日期包括一周的时间和日期。如果我触摸微调器,它会根据我设置的格式对其进行格式化。我怎样才能最初获得我想要显示的格式?
答案 0 :(得分:2)
使用内置编辑器,例如以下
spinner.setEditor(new JSpinner.DateEditor(spinner, "dd/MM/yyyy"));
答案 1 :(得分:1)
另外,作为旁注 - 每当您使用日历,日期和时间时,我会考虑使用Joda Time。