2011-04-01 35 views
2

我正在使用JSpinner输入时间;然而,当我使用getValue方法时,我获得了1970年1月1日的时间,因为这是默认日期开始。我怎样才能获得时间和时间?我对日期不感兴趣JSpinner专用时间

注意:我已经使用了dateEditor。也许我的JSpinnerDateModel不合适?

+0

看到这个问题的答案:http://stackoverflow.com/questions/654342/is-there-any-good-and-free-date-and-time-picker-available-for-java-swing – 2012-04-25 14:23:24

回答

4

您可以创建一个JSpinner的实例,并将它格式化日期作为时间,然后只提取时间结尾:

JSpinner jSpinner1 = new JSpinner(); 
    Calendar calendar = Calendar.getInstance(); 
    calendar.setTime(new Date(0)); 
    Date earliestDate = calendar.getTime(); 
    calendar.add(Calendar.MINUTE, 1439); // number of minutes in a day - 1 
    Date latestDate = calendar.getTime(); 
    SpinnerDateModel model = new SpinnerDateModel(earliestDate, 
      earliestDate, 
      latestDate, 
      Calendar.MINUTE); 
    jSpinner1.setModel(model); 
    jSpinner1.setEditor(new JSpinner.DateEditor(jSpinner1, "hh:mm")); 

    Date d = (Date)jSpinner1.getValue(); 
    Calendar c = Calendar.getInstance(); 
    c.setTime(d); 
    c.get(Calendar.HOUR); 
    c.get(Calendar.MINUTE); 
+0

我得到了你的建议的第一部分......但是如何提取单独的时间? – 2011-04-01 15:35:35

+0

我更新了我的答案 - 希望这有助于 – tofarr 2011-04-01 15:40:00

+0

这是否给你两个值?你会如何将它们合并成一个值?我将这个价值放在一张桌子上,因此他们需要成为一个。 – 2011-04-01 15:52:59