日期:2014-05-20  浏览次数:20750 次

【求助】格式化日期的问题
private void initFormat() {
// TODO Auto-generated method stub
SimpleDateFormat df = new SimpleDateFormat();
df.applyPattern("yyyy-MM-dd");
jFormattedTextField1=new JFormattedTextField(df);

jFormattedTextField1.setValue(date1);
jFormattedTextField1.addPropertyChangeListener("value", this);
}

public void propertyChange(PropertyChangeEvent e) {
  Object source = e.getSource();
  if (source == jFormattedTextField1) {
  date1 = jFormattedTextField1.getValue();
  }
   
  }

小弟用SimpleDateFormat去格式化jFormattedTextField1中输入的日期然后进行实时格式化。现在出现一个问题,比如我输入1991-05-01或者是1991/05/01,jFormattedTextField1失去焦点以后输出的就变成了1991-5-1。而我想得到的效果是没有去掉0的那种,就是输入1991/05/01能变成1991-05-01,求高手破解,拜谢

------解决方案--------------------
探讨
确实用AbstractFomatter可能能行,不过SimpleDateFormat好像没有parseDate()这种方法吧,我用parse()代替了不知道行不行。但是 return f.format((Date)value); 这句有抛出NullPointerException啊。。。纠结

我去研究下AbstractFormatter,大神有空的话再给看看这个代码该怎么改呗