无法在Java中从JDateChooser检索日期

无法在Java中从JDateChooser检索日期,java,swing,netbeans,datepicker,jcalendar,Java,Swing,Netbeans,Datepicker,Jcalendar,我正在使用来自的JDateChooser 但是,在控制台中显示日期时,我无法以方法setDateFormatString设置的格式检索日期 在中,第一个标签显示从JDateChooser检索的实际日期,而第二个标签显示我设置的格式。当我从JDateChooser中选择日期时,我得到的日期为22-07-2011,如图所示。但是当我使用getDate方法时,它会将日期设置为Fri Jul 22 00:00:00 GMT+05:30 2011。我只想要22-07-2011 这是我的密码。我正在使用N

我正在使用来自的
JDateChooser

但是,在控制台中显示日期时,我无法以方法
setDateFormatString
设置的格式检索日期

在中,第一个标签显示从
JDateChooser
检索的实际日期,而第二个标签显示我设置的格式。当我从
JDateChooser
中选择日期时,我得到的日期为
22-07-2011
,如图所示。但是当我使用
getDate
方法时,它会将日期设置为
Fri Jul 22 00:00:00 GMT+05:30 2011
。我只想要
22-07-2011

这是我的密码。我正在使用Netbeans IDE 7.0

public JDateChooser() {
    initComponents();
    dateChooser.setDateFormatString("dd-MM-yyyy");
}
private void btnDisplayDateActionPerformed(java.awt.event.ActionEvent evt) {
    String dateFromDateChooser = dateChooser.getDate().toString();
    lblDate.setText(dateFromDateChooser);
    lblDateFormat.setText(dateChooser.getDateFormatString().toString());
    System.out.println(dateFromDateChooser);
}
public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {

        @Override
        public void run() {
            new JDateChooser().setVisible(true);
        }
    });
}
有两种选择

1/您已经加载了源代码

    calDealDate.setPreferredSize(new Dimension(90, 23));
    calDealDate.setDateFormat(new SimpleDateFormat("dd.MM.yyyy"));
    calDealDate.setSpiningCalendarField(Calendar.DAY_OF_MONTH);
    calDealDate.setFont(new Font("SansSerif", Font.BOLD, 12));
    calDealDate.setBackground(AppVariables.fieldColor);
    calDealDate.addChangeListener(new ChangeListener() {

        @Override
        public void stateChanged(ChangeEvent e) {
            //here is your date depends of previous setings
        }
    });
    calDealDate.setToolTipText(" some tooltip text  ");
2/您已经加载了jar文件,然后必须从API中找到此方法或等效方法


编辑:也许我会从代码源开始,只需将其导入到项目中即可

您可以使用String.format方法获得所需的结果

Date dateFromDateChooser = dateChooser.getDate();
String dateString = String.format("%1$td-%1$tm-%1$tY", dateFromDateChooser);
试试这个

java.text.SimpleDateFormat fmt = new java.text.SimpleDateFormat("dd-MM-yyyy");
String formattedDate = fmt.format(dateChooser.getDate());
试试这个

   public void calendarExpale(){
    JPanel content = new JPanel();
    content.setLayout(new FlowLayout());
    final JTextField textField = new JTextField(15);
    JDateChooser chooser = new JDateChooser();

   chooser.setSize(15, 10);
  chooser.addPropertyChangeListener("date", new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {

    JDateChooser chooser = (JDateChooser)evt.getSource();
    SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:MM:SS");
    textField.setText(formatter.format(chooser.getDate()));
}
  });

  content.add(textField);
    content.add(chooser);
}

使用
字符串格式方法
,它将帮助您以及如何使用它看到这一点


此链接与您想要的教程相同。

toString()
始终以您上面看到的格式返回日期。将在DateChooser中设置的格式(即输入格式)与要输出到控制台的格式混淆。您可以从没有内部格式的日期选择器中获得一个
Date
对象。如果要打印出来,必须将日期格式化为字符串。下面的答案告诉你怎么做。谢谢你的帮助。它完全符合我的要求。再次感谢您的回复,谢谢。很有效。但“Kainsin”解决方案更好,因为我只想以定义的格式打印它&其他什么都不想。无论如何thanks@iOSAppDev-说得好,mKorbel偶尔会忘记理想情况下的答案和问题一样:-)