无法从Java中的JDateChooser检索日期

时间:2011-07-20 10:48:19

标签: java swing netbeans datepicker jcalendar

我正在使用here

中的JDateChooser

但是,在控制台中显示时,我无法使用方法setDateFormatString检索格式的日期。

enter image description here

第一个标签显示从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);
        }
    });
}

5 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:3)

试试这个

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

答案 2 :(得分:2)

有两个选择

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

中找到此方法或等效方法 编辑:也许我会先从代码源开始,然后将其导入项目

答案 3 :(得分:0)

试试这个

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

答案 4 :(得分:-1)

使用String Format Method,它会帮助您以及如何使用它看到这个

https://www.youtube.com/watch?v=FEM0BpZSXmU

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