4

我在JCalendar(使用 Swing)中使用 JDateChooser。我正在尝试获取“yyyy-MM-dd”的格式,但由于某种原因,我也得到了时间而且它总是相同的(00:00:00 MDT)。有人知道如何摆脱时间吗?提前致谢。

try {
    calendarDate = new JDateChooser();
} catch (Exception e) {
    e.printStackTrace();
}
calendarDate.setDateFormatString("yyyy-MM-dd");

dateLabel = new JLabel("Date");
parent.frame2.getContentPane().add(dateLabel);//1
parent.frame2.getContentPane().add(calendarDate);   
4

3 回答 3

6

JDateChooser显示特定的日期格式,您需要使用其setDateFormatStringAPI设置该特定格式

例子 :

JDateChooser myDateChooser = new JDateChooser();
myDateChooser.setDateFormatString("yyyy-MM-dd");

你已经在做 gthis 了吗?然后你必须发布你从组件中获得价值的地方。

在您处理 JDateChooser 的属性更改的地方,您可以执行以下操作来获取相同格式的日期:

示例:(假设 String dateString 是您想要日期字符串的位置)

myDateChooser.addPropertyChangeListener(new PropertyChangeListener() {

            @Override
            public void propertyChange(PropertyChangeEvent evt) {
                if (evt.getPropertyName().equals("date")) {
                    dateString = new SimpleDateFormat("yyyy-MM-dd").format(myDateChooser.getDate());
                }
            }
        });
于 2011-10-03T18:51:01.387 回答
1

我使用的是代码源,而不是 *.jar 中的编译文件,然后

calNewDate.setDateFormat(new SimpleDateFormat("dd.MM.yyyy"));
calNewDate.setSpiningCalendarField(Calendar.DAY_OF_MONTH);
calNewDate.setFont(new Font("SansSerif", Font.BOLD, 12));
calNewDate.setBackground(someColor);
calNewDate.addChangeListener(new ChangeListener() {

    @Override
    public void stateChanged(ChangeEvent e) {
       //some stuff
    }
});
calNewDate.setToolTipText("Whatever");
于 2011-10-03T19:08:18.370 回答
0

请注意在 JDateChosser 文本字段中格式化日期的戳记。您可以做的一个常见的词汇错误是以下我假设addPropertyChangeListener在 JDateChooser 后面以捕获用户在输入中设置的日期:

dateInserted.getDateEditor().addPropertyChangeListener(new PropertyChangeListener() {
            @Override
            public void propertyChange(PropertyChangeEvent evt) {
                // TODO Auto-generated method stub
                if ("date".equals(evt.getPropertyName())) {
                    Date date = dateInserted.getDateEditor().getDate();
                    ordine.setOrderDate(date);
                    dateInserted.setDateFormatString("dd/MM/YYYY");
                    dateInserted.setDate(date);
                    System.out.println(date.toString());
                    dateInserted.setBorder(BorderFactory.createLineBorder(Color.GREEN));
if (canIenableCalcolaEAggiungi(2) == true)
                        calculatingAndAdding.setEnabled(true);
                    else {
                        calculatingAndAdding.setEnabled(false);
                    }
                }
            }
        });

在脚本中写错了:

 dateInserted.setDateFormatString("dd/MM/YYYY");

当您选择年份的格式模式“YYYY”(而不是“yyyy”或“yy”cfr API)时,它不会被识别并产生如下错误:当您尝试编辑 JDateChooser 的文本字段并且您使鼠标离开时,日期自动更改为随机值。不能再改变了。这也可能产生不想要的日期。

于 2017-08-07T14:02:28.720 回答