【问题标题】:Getting time from JXDatePicker从 JXDatePicker 获取时间
【发布时间】:2012-06-24 16:10:09
【问题描述】:

是否可以从 JXDatePicker 组件中不仅获取日期,还获取日期和时间?

我已将小部件配置为显示这种格式:

SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
JXDatePicker startTime = new JXDatePicker(System.currentTimeMillis); // This gets today's Date, but time appears as 00:00:00
startTime.setFormats(dateFormatter);

每当我在日历中选择一天时,时间都会设置为 00:00:00,即使它手动设置了任何其他值。我不在乎,但是当我得到 JXDatePicker 的值时,即使它已被编辑,我也会收到 00:00:00。例如,如果将 2012-06-22 07:23:10 写入我的 JXDatePicker,然后调用 dateFormatter.format(startTime.getDate()),我将收到字符串“2012-06-22 00:00:00” .

我需要获取时间值。有什么简单的方法可以做到这一点?如果太难,我可以换成你建议的其他小部件。

【问题讨论】:

标签: java swing datepicker simpledateformat swingx


【解决方案1】:

JXDatePicker 仅用于提取日期。任何时候都不会回来。这就解释了为什么你会得到 00:00:00。你将不得不找到另一个。也许这就是你要找的那个:

Is there any good and free Date AND Time Picker available for Java Swing?

【讨论】:

    【解决方案2】:

    JXDatePicker 可能应该仅用于概念上的日期,但您仍然可以从其编辑器中收集完整的 Java Date 对象。只需使用这样的东西:

    JXDatePicker datePicker = new JXDatePicker();
    datePicker.setFormats("dd-MM-yyyy HH:mm:ss");
    
    /*
      set in any way value inside datePicker
    */
    
    JFormattedTextField editor = datePicker.getEditor();
    Date dateInDatePicker = (Date) editor.getValue();
    

    以这种方式使用它您可以收集整个 Java Date 对象,而不是修剪为仅日期信息。

    【讨论】:

      【解决方案3】:

      将此发布给可能访问此问题的其他人,而不是 OP,因为我相信您现在已经找到了解决方案。

      这是一个非常有用的解决方案。更新和自定义非常容易。

      http://www.java.net/node/700914

      【讨论】:

        【解决方案4】:

        如此简单。只需将其粘贴到您的类定义部分即可。

        private JXDatePicker Today= new JXDatePicker(new Date()); 
        

        这显示系统日期,如:“09.09.2014”
        如果您的区域设置不同,请尝试格式化日期,例如:

        datePicker.setFormats("dd/MM/yyyy");
        

        等等……

        不需要放任何其他东西。

        【讨论】:

          【解决方案5】:
          JFormattedTextField editor = jXDatePicker1.getEditor();
          
          Date dateInDatePicker = (Date) editor.getValue();
          
          DateFormat sysDate = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
          
          String date_to_store = sysDate.format(dateInDatePicker);
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-04-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多