从JXDatePicker获得时间

时间:2012-06-22 10:57:40

标签: java swing datepicker simpledateformat swingx

是否可以从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”

我需要获得时间价值。有没有简单的方法来做到这一点?如果它太难了,我可以换成你建议的不同小部件。

5 个答案:

答案 0 :(得分:4)

JXDatePicker仅用于提取日期。它不会随时返回。这就解释了为什么你要00:00:00。你必须找到另一个。也许这就是你要找的那个:

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

答案 1 :(得分: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();

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

答案 2 :(得分:1)

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

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

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

答案 3 :(得分:0)

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

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

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

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

等...

无需添加任何其他内容。

答案 4 :(得分:0)

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