Не удается получить дату из JDateChooser в Java - PullRequest
2 голосов
/ 20 июля 2011

Я использую 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 ]

8 голосов
/ 20 июля 2011

Вы можете использовать метод String.format для получения желаемого результата.

Date dateFromDateChooser = dateChooser.getDate();
String dateString = String.format("%1$td-%1$tm-%1$tY", dateFromDateChooser);
3 голосов
/ 17 апреля 2013

Попробуйте это

java.text.SimpleDateFormat fmt = new java.text.SimpleDateFormat("dd-MM-yyyy");
String formattedDate = fmt.format(dateChooser.getDate());
2 голосов
/ 20 июля 2011

есть два варианта

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

РЕДАКТИРОВАТЬ: может быть, я бы предпочел начать с исходного кода, просто импортируйте его в проект

0 голосов
/ 12 июля 2017

Используйте String Format Method, это поможет вам, и как его использовать, посмотрите это

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

эта ссылка имеет то же учебное пособие, что и вы.

0 голосов
/ 29 апреля 2015

Попробуйте это

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