【问题标题】:JSpinner exclusively for timeJSpinner 专为时间而生
【发布时间】:2011-07-27 18:56:54
【问题描述】:

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

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

【问题讨论】:

标签: java jspinner


【解决方案1】:

您可以创建一个 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);

【讨论】:

  • 我得到了你建议的第一部分......但是如何才能单独提取时间?
  • 这会给你两个值吗?您如何将它们组合成一个值?我正在取值并将其放入表中,因此它们必须是一个。
  • 如果您将其放入另一个字段并想要一个值,我建议您进行格式化,以便只有必填字段可见。 - 您是否在 JTable 中显示它?如果是这样,这里有一个可能有用的链接codeguru.com/forum/showthread.php?t=40628
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多